SLURM batch array loop?
我有点 bash 挑战,并试图通过我机构集群上的 slurm 发送大量作业。我已经超出了我的限制(每个作业数组似乎有 1000 个作业)并且不得不迭代地将列表解析为 1000 个块,这很乏味:
1 | sbatch --array=17001-18000 -p <server-name> --time=12:00:00 <my-bash-script> |
我该如何编写一个循环来做到这一点?每个工作大约需要 11 分钟,所以我需要在循环中建立一个暂停。否则,我怀疑 SLURM 会拒绝新的批处理作业。有谁知道该怎么做?提前致谢!
这样的事情应该做你想做的事
1 2 3 4 5 6 7 8 9 10 11 12 | START=1 END=10000 STEP=1000 SLEEP=700 #Just over 11 Minutes (in seconds) for i in $(seq $START $STEP $END) ; do JSTART=$i JEND=$[ $JSTART + $STEP - 1 ] echo"Submitting with ${JSTART} and ${JEND}" sbatch --array=${JSTART}-${JEND} -p <server-name> --time=12:00:00 <my-bash-script> sleep $SLEEP done |