Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在以数组形式提交作业。由于难以诊断 gpu 内存问题,有时一项作业会出错。只需重新运行作业即可成功。
我想做的是捕捉这个错误,记录它,然后把作业放回 slurm 的队列中重新运行。如果这不可能通过数组作业完成,那很好,使用数组不是必需的(尽管它是首选)。
我尝试过使用 sbatch --rerun,但这似乎并没有达到我想要的效果(我认为此选项用于在 slurm 检测到硬件错误后重新运行,或者在作业运行时重新启动节点 -这不是我的工作的情况)。
任何建议都很受欢迎。
如果您可以检测到 GPU 内存问题,您可以使用如下构造结束提交作业:
if <gpu memory issue>; then scontrol requeue $SLURM_JOBID fi
这会将作业放回调度队列中,并将按原样重新启动。有趣的是,SLURM_RESTART_COUNT环境变量保存了作业重新排队的次数。
SLURM_RESTART_COUNT