假設我要bash.sh使用 slurm 在 HPC 上運行以下 bash 腳本 ( ):
#!/bin/bash
#SBATCH --job-name test
#SBATCH --ntasks 4
#SBATCH --time 00-05:00
#SBATCH --output out
#SBATCH --error err
#SBATCH --array=0-24
readarray -t VARS < file.txt
VAR=${VARS[$SLURM_ARRAY_TASK_ID]}
export VAR
bash my_script.sh
此腳本將運行 25 次my_script.sh腳本更改file.txt檔案中的變數。換句話說,如果我bash.sh使用命令提交,將同時啟動 25 個作業sbatch bash.sh。
有沒有辦法可以限制同時運行的作業數量(例如 5 個),直到所有 25 個都完成?
如果有辦法這樣做,我怎么能做同樣的事情,但總共有 24 個作業(即不能被 5 整除的數字)?
謝謝
uj5u.com熱心網友回復:
摘自 Slurm 的sbatch檔案:
-a, --array=<indexes>
... 可以使用“%”分隔符指定作業陣列中同時運行的任務的最大數量。例如“--array=0-15%4”將限制從這個作業陣列同時運行的任務數為4。...
這應該將陣列中正在運行的作業數限制為 5:
#SBATCH --array=0-24%5
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/412232.html
標籤:
上一篇:Bash正則運算式語法用于排除所有帶有:space:在字串末尾?
下一篇:jq通過動態子鍵合并json
