如何为SLURM数组作业实现特定失败任务的重排队?
SLURM数组任务单任务重排的--requeue参数使用说明
在你的SLURM 18.08.3版本中,两种方式都能实现数组单个失败任务的重排,但作用范围和优先级有区别:
脚本内添加
#SBATCH --requeue
该配置会绑定到作业脚本本身,所有通过这个脚本提交的数组任务(包括后续重复提交的批次)都会默认开启重排功能。如果你的所有数组任务都需要失败后自动重排,这种方式更便捷,无需每次提交都额外指定命令行参数。提交命令中添加
--requeue参数
该配置仅对当前提交的这批数组任务生效,只影响本次提交的0-9号子任务。如果只是临时需要重排功能,或者不同批次任务的重排需求不同,这种方式更灵活。
版本适配细节(SLURM 18.08.3)
在这个版本中,--requeue参数对数组任务的单个子任务独立生效:当某个数组子任务因非0退出码、节点故障等原因失败时,SLURM只会重新调度该特定子任务,不会重启整个数组。
如果需要避免单个任务无限重排,可以配合--max-requeue参数限制重排次数,比如:
- 在脚本中添加:
#SBATCH --max-requeue=2 - 或者在提交命令中指定:
sbatch --array=0-9 --requeue --max-requeue=2 my_task.batch
内容的提问来源于stack exchange,提问作者Stephen Ashton
相关产品推荐
相关产品推荐

