我想通過sbatch_run.sh
腳本不同參數main.py
多次運行Python腳本中:在運行一個壞主意的過程中,更改在slurm中發送給sbatch的bash腳本?
#!/bin/bash
#SBATCH --job-name=sbatch_run
#SBATCH --array=1-1000
#SBATCH --exclude=node047
arg1=10 #arg to be change during runs
arg2=12 #arg to be change during runs
python main.py $arg1 $arg2
參數在bash的文件編碼由跑sbatch。我很擔心,如果我多次運行sbatch_run.sh
多次,但在每次運行期間更改arg1和arg2的值,以致它可能會在我的運行中導致錯誤。例如,如果我這樣做:
sbatch sbatch_run.sh # with arg1=10 and arg2=12
然後立即我改變sbatch_run.sh
但在再次運行該文件後:
sbatch sbatch_run.sh # with arg1=69 and arg2=666
會區分我奔跑都與最後一個運行(即arg1=69
和arg2=666
)而不是每個運行自己的參數。
我知道如果我硬編碼在main.py中的參數,然後運行相同的sbatch腳本,但更改main.py它將運行最後一個。我想知道是否也是如此,如果我更改sbatch_run.sh
腳本。
只要你知道,我沒有嘗試這個實驗中,通過運行腳本1000,然後得到一些排隊,把休眠命令,然後更改sbatch_run.sh
。這似乎並沒有改變我的跑步,但是,如果我錯了,這太重要了,不要因爲意外而錯誤地想要確保我也問了。
爲了記錄我跑:
#!/bin/bash
#SBATCH --job-name=ECHO
#SBATCH --array=1-1000
#SBATCH --exclude=node047
sleep 15
echo helloworld
echo 5
,然後改變回聲回聲10或回聲byebyeworld。
這意味着從我得到的答案,如果你是通過sbatch運行腳本,並且想要改變腳本的參數(如'main.py'示例),請確保有一個地方的參數不更改。例如,直接將它們傳遞給bash腳本,每次運行都通過slurm或配置文件運行,只需確保正確的配置文件正在運行,並且不會意外更改它! –