0
我試圖用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*"))
我寧願提交一個python腳本作爲我的所有現有的腳本(PBS與以前使用的)都已經在Python我不想在shell腳本中重寫它們。我的問題最好通過一個簡短的例子來演示。
首先,
> sbatch --export=build=true --export=param=p100_256 run.py
> Submitted batch job 2249581
產生具有以下內容的日誌文件:
run.py
2249581
[]
['param']
如果我扭轉export
標誌爲 '構建' 和 'PARAM' 的順序,
> sbatch --export=param=true --export=build=p100_256 run.py
> Submitted batch job 2249613
則日誌文件現在看起來,
run.py
2249613
['build']
[]
這將暗示只有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']
[]
所以沒有任何人知道,爲什麼只有被傳遞的export
最後的實例?我得到的語法不正確?我需要指定一個額外的標誌嗎?
謝謝!