SLURM长时间运行作业被重排队重启,如何配置确保作业完成?
解决SLURM长作业中途重启的问题
下面从作业提交配置、集群规则规避、代码容错、管理员协调四个方面给出可行方案:
一、调整作业提交参数,避免被抢占/超时
- 指定长作业分区/高优先级QoS:很多集群会划分专门的长作业分区,或者提供高优先级QoS来减少被抢占的概率。提交作业时明确指定:
sbatch --partition=long_jobs --time=7-00:00:00 my_job.sh # 或有权限的话用高优先级QoS sbatch --qos=high_priority --time=10-00:00:00 my_job.sh - 设置足够的时间限制:不要依赖集群默认的时间配额,用
--time明确设置超过作业实际运行时长的时间,比如--time=10-00:00:00表示10天,避免因超时触发重启。 - 申请独占节点(如果允许):用
--exclusive参数申请独占节点资源,这样其他作业不会抢占该节点,减少被重启的可能,但注意这个可能需要额外权限或更高的资源成本:sbatch --exclusive --time=7-00:00:00 my_job.sh - 使用节点保留:如果集群支持,提前向管理员申请节点保留,提交作业时指定保留名,确保运行期间节点不被分配给其他用户:
sbatch --reservation=my_long_job_resv my_job.sh
二、排查集群调度规则,避开触发重启的场景
- 检查集群抢占机制:用
scontrol show config | grep PreemptType查看集群的抢占类型,如果是Requeue,低优先级作业会被直接重新排队;如果是Suspend,作业会被暂停而非重启。如果是前者,要么申请更高优先级,要么联系管理员调整你的作业权限。 - 避开节点维护窗口:集群节点定期维护会导致作业迁移重启,用
sinfo -R查看即将维护的节点,提交时排除这些节点:sbatch --exclude=node01,node02 my_job.sh
三、代码实现Checkpointing,兜底恢复进度
这是最可靠的方案,不管作业是否重启,都能从上次中断的地方继续:
- 手动编写Checkpoint逻辑:在代码中定期将中间状态(比如计算进度、模型参数、数据指针)保存到共享存储(比如集群的NFS目录),重启时先检查是否有Checkpoint文件,有就加载状态继续。
举个Python的简单例子:import pickle import os CHECKPOINT_FILE = "/shared/scratch/my_job_checkpoint.pkl" def load_checkpoint(): if os.path.exists(CHECKPOINT_FILE): with open(CHECKPOINT_FILE, "rb") as f: return pickle.load(f) return {"step": 0, "results": []} def save_checkpoint(state): with open(CHECKPOINT_FILE, "wb") as f: pickle.dump(state, f) # 主流程 state = load_checkpoint() start_step = state["step"] results = state["results"] for step in range(start_step, 100000): # 执行计算任务 result = run_calculation(step) results.append(result) # 每1000步保存一次Checkpoint if step % 1000 == 0: state["step"] = step + 1 state["results"] = results save_checkpoint(state) - 利用SLURM内置Checkpoint功能:部分集群支持SLURM自动保存作业状态,提交时加上
--checkpoint参数:
注意这个需要集群管理员提前配置支持,先确认集群是否开启该功能。sbatch --checkpoint=yes --checkpoint-dir=/shared/checkpoints my_job.sh
四、联系集群管理员解决全局限制
如果以上方法都没用,大概率是集群的全局配置限制(比如默认的作业重新排队规则、资源配额),直接找管理员:
- 说明你的长作业需求,请求将作业加入不被抢占的白名单
- 询问是否有专门的长作业资源池或队列
- 排查是否存在节点故障自动迁移的阈值设置过高等系统问题
内容的提问来源于stack exchange,提问作者Emma Athan
相关产品推荐
相关产品推荐

