gpt4 book ai didi

shell - sbatch+srun : Large amount of single thread jobs

转载 作者:行者123 更新时间:2023-12-04 15:35:31 25 4
gpt4 key购买 nike

大家好,

我的问题很具体。

一个多星期以来,我一直在尝试使用 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

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

srun: Job 1846955 step creation temporarily disabled, retrying

1) “步骤创建暂时禁用”是什么意思?是所有 cpu 都忙并且作业被省略了还是稍后资源空闲时又开始了?

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

感谢您的帮助!

最佳答案

srun: Job 1846955 step creation temporarily disabled, retrying

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

wait 5s

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 &

done
wait

关于shell - sbatch+srun : Large amount of single thread jobs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59896660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com