Shell sbatch+;srun:大量单线程作业

Shell sbatch+;srun:大量单线程作业,shell,cluster-computing,slurm,single-threaded,sbatch,Shell,Cluster Computing,Slurm,Single Threaded,Sbatch,你好,友好的人们 我的问题相当具体 一个多星期以来,我一直在尝试提交数千个单线程作业,用于使用sbatch和srun进行科学实验 问题是,这些作业可能需要不同的时间才能完成,有些作业甚至可能因为超出内存限制而中止。这两种行为都很好,我的评估处理了它 但是,我面临的问题是,有些工作从未开始,即使它们已经提交 我的sbatch脚本如下所示: #!/usr/bin/bash #SBATCH --nodes=4 #SBATCH --tasks-per-node=12 #SBATCH --mem-per-

你好,友好的人们

我的问题相当具体

一个多星期以来,我一直在尝试提交数千个单线程作业,用于使用sbatch和srun进行科学实验

问题是,这些作业可能需要不同的时间才能完成,有些作业甚至可能因为超出内存限制而中止。这两种行为都很好,我的评估处理了它

但是,我面临的问题是,有些工作从未开始,即使它们已经提交

我的sbatch脚本如下所示:

#!/usr/bin/bash
#SBATCH --nodes=4
#SBATCH --tasks-per-node=12
#SBATCH --mem-per-cpu=10000

for i in {1..500}
do

   srun -N1 -n1 -c1 --exclusive --time=60 ${mybinary} $i &   
   wait 5s

done
#!/usr/bin/bash
#SBATCH --nodes=4
#SBATCH --tasks-per-node=12
#SBATCH --mem-per-cpu=10000

for i in {1..500}
do

   srun -N1 -n1 -c1 --exclusive --time=60 ${mybinary} $i &   

done
wait
现在,我的错误日志显示以下消息:

srun: Job 1846955 step creation temporarily disabled, retrying
1) “步骤创建暂时禁用”是什么意思?是所有cpu都很忙,作业被省略了,还是在资源空闲时再次启动

2) 为什么我的一些工作没有执行,我该如何解决?我是否为srun使用了正确的参数

谢谢你的帮助

srun:作业1846955步骤创建暂时禁用,正在重试

这是正常情况,您保留4 x 12个CPU并启动500个
srun
。只有48个实例将运行,而另一个实例将输出该消息。每当运行的实例停止时,挂起的实例就会启动

等5秒钟

wait
命令用于等待进程,而不是等待一定的时间。为此,请使用
sleep
命令。
wait
命令必须位于脚本末尾。否则,作业可能会在所有
srun
实例完成之前停止

所以纸条应该是这样的:

#!/usr/bin/bash
#SBATCH --nodes=4
#SBATCH --tasks-per-node=12
#SBATCH --mem-per-cpu=10000

for i in {1..500}
do

   srun -N1 -n1 -c1 --exclusive --time=60 ${mybinary} $i &   
   wait 5s

done
#!/usr/bin/bash
#SBATCH --nodes=4
#SBATCH --tasks-per-node=12
#SBATCH --mem-per-cpu=10000

for i in {1..500}
do

   srun -N1 -n1 -c1 --exclusive --time=60 ${mybinary} $i &   

done
wait

谢谢,我很确定丢失的最终等待声明就是问题所在!如果你觉得答案解决了你的问题,请考虑