[英]How to submit jobs to SLURM with different nodes?
我必須使用sbatch在群集上運行多個模擬。 在一個文件夾中,我有要運行的Python腳本和與sbatch一起使用的文件:
#!/bin/bash -l
#SBATCH --time=04:00:00
#SBATCH --nodes=32
#SBATCH --ntasks-per-core=1
#SBATCH --ntasks-per-node=36
#SBATCH --cpus-per-task=1
#SBATCH --partition=normal
#SBATCH --constraint=mc
module load Python
source /scratch/.../env/bin/activate
srun python3 script.py
deactivate
我要做的是運行相同的Python腳本,但對--nodes使用不同的值。 我怎樣才能做到這一點? 此外,我想為每次運行創建一個文件夾,其中將保存(輸出)slurm文件,命名為“ nodes_xy”。
假設您的腳本名為submit.sh
,則可以從腳本中刪除--nodes
並運行:
for i in 2 4 8 16 32 64; do sbatch --nodes $i --output nodes_$i.txt, submit.sh; done
這將提交帶有兩個附加參數的submit.sh
腳本--nodes
和--output
,第一個參數控制使用的節點數,第二個參數指定輸出文件的名稱,每個值2、4 ,8等。請注意,所有輸出文件都將位於當前目錄中,如果確實需要在單獨的目錄中進行一些開發,則需要一點點的開發。
如果允許的最大運行時間允許,則可以在單個作業中執行所有運行,如下所示:
#!/bin/bash -l
#SBATCH --time=04:00:00
#SBATCH --nodes=32
#SBATCH --ntasks-per-core=1
#SBATCH --ntasks-per-node=36
#SBATCH --cpus-per-task=1
#SBATCH --partition=normal
#SBATCH --constraint=mc
module load Python
source /scratch/.../env/bin/activate
for i in 2 4 8 16 32 64;
do
srun --nodes $i python3 script.py > nodes_$i
done
deactivate
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.