You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Slurm集群跨节点mpirun报错:ORTE daemon意外失败排查求助

跨节点OpenMPI任务失败的排查步骤

1. 先验证Slurm基础任务可用性

跳过OpenMPI,直接在交互式任务中执行跨节点srun命令,确认Slurm本身能否创建跨节点step:

srun --nodes=2 --ntasks-per-node=1 hostname

如果此命令也失败,说明问题核心在Slurm而非OpenMPI,结合报错Requested node configuration is not available,重点检查:

  • 节点状态:执行sinfo,确认目标节点(如node02)处于idle/alloc状态,无down/drain等异常标记
  • 节点资源:执行scontrol show node node02,检查节点可用CPU、内存等资源是否满足任务请求,同时确认节点未被配置特殊资源约束(如仅允许特定partition任务)
  • 任务属性:执行scontrol show job [job_id](替换为实际任务ID,如18),查看任务的partition、约束条件是否与目标节点匹配

2. 确认OpenMPI与Slurm的集成支持

OpenMPI在Slurm环境中依赖plm_slurm模块启动远程daemon,需验证:

  • 编译时是否启用Slurm支持:执行ompi_info | grep plm_slurm,若无输出,说明编译时未包含Slurm支持,需重新编译OpenMPI并添加--with-slurm参数(确保编译环境能找到Slurm头文件与库,通常路径为/usr/include/slurm、/usr/lib64)
  • 强制使用Slurm PLM:在交互式任务中设置环境变量后重试:
export OMPI_MCA_plm=slurm
mpirun hostname

3. 验证UCX网络配置兼容性

尽管编译时禁用了openib/verbs,UCX仍需正确识别集群网络:

  • 检查UCX设备检测:执行ucx_info -d,确认UCX能识别IB或以太网设备
  • 节点间连通性:在交互式任务中,双向ping节点的IB IP与以太网IP,确认网络通畅;同时检查防火墙规则,确保节点间TCP端口(包括mpirun随机端口、Slurm step通信端口)未被拦截
  • 指定UCX网络设备:设置环境变量指定可用网络接口,例如:
export UCX_NET_DEVICES=mlx5_0:1  # 替换为实际IB设备名
# 或允许UCX自动选择所有设备
export UCX_NET_DEVICES=all

4. 检查Slurm Step创建的权限与配置

报错srun: error: Unable to create step for job 18可能与Slurm配置或权限相关:

  • 检查Slurm控制器参数:执行scontrol show config | grep SlurmctldParameters,确认未禁用step创建
  • 验证用户权限:确保任务所属用户在SlurmAllowedUsers列表中,未被DeniedUsers排除;同时确认用户在节点间的SSH免密登录正常(部分Slurm配置依赖SSH)
  • 检查Munge服务:所有节点Munge服务需正常运行且使用相同密钥,执行munge -n | unmunge在每个节点验证,同时查看/var/log/munge/munged.log是否有错误

5. 查看详细Slurm日志定位根因

  • 查看Slurm控制器日志(通常路径/var/log/slurm/slurmctld.log)与目标节点的Slurmd日志(/var/log/slurm/slurmd.log),搜索对应任务ID的日志条目,会包含更具体的错误原因(如资源不足、认证失败、网络通信异常等)

内容的提问来源于stack exchange,提问作者DSX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 17:44:54