PBS 지시문에 지정된 리소스 값을 다른 환경 변수에 매핑할 수 있도록 추출하려면 어떻게 해야 합니까?

PBS 지시문에 지정된 리소스 값을 다른 환경 변수에 매핑할 수 있도록 추출하려면 어떻게 해야 합니까?

이 질문은 가우스 양자 화학 계산을 보다 편리하게 관리할 수 있는 메인프레임 컴퓨팅 클러스터에서 스크립트를 찾으려고 할 때 발생했습니다. 이것사용자 매뉴얼나의 주인은 다음과 같이 말합니다.

Gaussian 09는 프로세서 수, 메모리 양 및 사용할 디스크 공간에 대한 값을 프로그램에 전달하는 또 다른 방법을 제공합니다. 입력 파일에 %mem, %nprocshared 및 Maxdisk를 지정하는 대신 가우스 환경 변수 $GAUSS_PDEF, $GAUSS_MDEF 및 $GAUSS_RDEF를 사용하는 것이 더 매력적일 수 있습니다. 이러한 변수를 사용하여 ncpus, mem 및 jobfs에 대한 PBS 작업 값을 Gaussian 09 판독 가능한 환경 변수로 변환합니다. PBS 스크립트의 명령줄에서 "g09" 줄 대신 bash 스크립트 "g09.sh"를 사용해 보는 것이 좋습니다. 스크립트는 사용자를 위해 이 변환을 수행하고 PBS 설정을 인식하도록 프로그램을 시작합니다. 스크립트 사용 구문은 간단합니다.

불행히도 스크립트는 더 이상 클러스터에 존재하지 않는 것 같습니다. 실제로 / 폴더에 액세스하고 /apps 및 /를 확인할 수 있음에도 불구하고 사용자로서 /root 에서 액세스가 허용되지 않기 때문에 이를 완전히 확인할 수 없습니다. 모듈은 소프트웨어 및 환경 모듈을 저장합니다.

이는 이 정보를 기반으로 동일한 작업을 수행하는 스크립트를 직접 작성해야 함을 의미합니다. 호스트에서 사용하는 일반적인 PBS는 다음과 같습니다.

#!/bin/bash
#PBS -l walltime=20:00:00
#PBS -l ncpus=4
#PBS -l mem=4GB
#PBS -l jobfs=100GB
#PBS -l software=g09
#PBS -l wd

module load gaussian/g09e01
g09 < inputdeck > outputfile 2>&1

그러므로 다음과 같이PBS 프로페셔널 사용자 가이드, -l이 있는 모든 항목은 작업에 할당될 리소스입니다.

그런 다음 내보낼 수 있도록 리소스의 mem, ncpus, jobfs 값을 저장하는 환경 변수를 찾으려고 했습니다 $(some gaussian environment variable)=$(some PBS environment variable correspond to the resources). 그러나 리소스를 저장하는 유일한 PBS 환경 변수는 PBS_NCPUS이므로 이 전략은 작동하지 않는 것 같습니다.

그렇다면 PBS 지시문에서 각 리소스 유형에 대한 값을 추출하여 가우스 환경 변수에 매핑하려면 어떻게 해야 할까요?

관련 정보