【发布时间】:2020-01-31 18:23:39
【问题描述】:
我有点 bash 挑战,并试图通过我机构集群上的 slurm 发送大量工作。我已经超出了我的限制(每个作业数组似乎有 1000 个作业)并且不得不迭代地将列表解析为 1000 个块,这很乏味:
sbatch --array=17001-18000 -p <server-name> --time=12:00:00 <my-bash-script>
我如何编写一个循环来做到这一点?每个工作大约需要 11 分钟,所以我需要在循环中建立一个暂停。否则,我怀疑 SLURM 会拒绝新的批处理作业。有谁知道该怎么做?提前致谢!
【问题讨论】:
-
为什么不
sbatch -a 1-50000%1000?这将执行 50000 个任务,同时将调度程序限制为 1000 个并发。 -
谢谢你,I'L'I - 我应该提到我确实按照哈佛 slurm 指南尝试过,但没有运气。我收到此错误:
sbatch: error: Slurm temporarily unable to accept job, sleeping and retrying -
尝试
squeue | wc -l会得到什么?您需要将数组设置为该数字,然后像上面的示例一样尝试。 -
再次感谢!我现在正在使用下面的循环(需要一天左右的时间才能运行)并将尝试这个并报告。