SLURM 작업 스케줄러를 사용하여 작업을 제출하려고 시도하고 있는데 --export=VAR=VALUE
구문을 사용하면 일부 변수가 전달되지 않습니다 (종종 첫 번째 인스턴스의 변수 export
). 각 변수에 대해 --export=...
을 지정해야합니다.sbatch에서 전달되지 않는 명령 줄 인수
sbatch --export=build=true --export=param=p100_256 run.py
내 스크립트 "run.py"는 다음과 같다 : 파이썬 이미
#! /usr/bin/env python
import os,fnmatch
print(os.environ["SLURM_JOB_NAME"])
print(os.environ["SLURM_JOB_ID"])
print(fnmatch.filter(os.environ.keys(),"b*"))
print(fnmatch.filter(os.environ.keys(),"p*"))
내가 (PBS와 함께 이전에 사용) 기존 모든 스크립트로 파이썬 스크립트를 제출 원합니다 쉘 스크립트에서 다시 작성하고 싶지는 않습니다. 내 문제는 간단한 예를 통해 가장 잘 증명됩니다. 첫째
,
> sbatch --export=build=true --export=param=p100_256 run.py
> Submitted batch job 2249581
은 다음과 로그 파일을 생성합니다
run.py
2249581
[]
['param']
내가 '빌드'와 'PARAM'에 대한 export
플래그의 순서를 반대로하는 경우,
> sbatch --export=param=true --export=build=p100_256 run.py
> Submitted batch job 2249613
이제 로그 파일은
처럼 보입니다. 0run.py
2249613
['build']
[]
이는 export
플래그의 최종 인스턴스 만 전달됨을 나타냅니다. 내가 export
의 세 번째 인스턴스에 추가하는 경우에만 export
의 마지막 인스턴스가 전달되는 이유
> sbatch --export=param=1 --export=build=p100_256 --export=build_again=hello run.py
> Submitted batch job 2249674
다음 로그 파일 반환,
run.py
2249674
['build_again']
[]
그래서 사람은 알고 있나요? 구문이 잘못 되었나요? 추가 플래그를 지정해야합니까?
감사합니다.