簡體   English   中英

如何通過不同的節點將作業提交給SLURM?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM