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

使用Slurm调度双节点OpenMPI作业时遇连接异常问题

问题原因与解决方法

核心原因

你的怀疑是正确的,该问题确实源于节点存在多IP接口。OpenMPI默认会尝试利用所有可用网络接口建立连接,但Slurm调度跨节点作业时,节点间通信应使用集群指定的专用通信子网(如InfiniBand或专用以太网)。若OpenMPI误选了其他接口(比如管理网IP),就会触发其安全机制,判定为“意外IP地址TCP连接请求”并断开连接。

另外,libibverbs警告通常是节点RDMA驱动/配置存在小问题,但单节点作业无需跨节点通信,因此不影响运行;双节点作业需要节点间数据传输,就会暴露网络接口匹配的问题。

解决方法

1. 强制指定OpenMPI使用的网络接口

在srun命令中添加OpenMPI参数,明确指定集群专用通信接口,示例:

srun --mpi=pmi2 --gpus=16 --nodelist=nodeA,nodeB -x OMPI_MCA_btl_tcp_if_exclude=lo,eth0 -x OMPI_MCA_btl_tcp_if_include=ib0 python your_script.py
  • OMPI_MCA_btl_tcp_if_exclude:排除无需使用的接口(如本地回环lo、管理网eth0)
  • OMPI_MCA_btl_tcp_if_include:指定要使用的通信接口(如InfiniBand的ib0或专用以太网接口)
    注意:需替换为你集群实际的接口名称,可在节点上执行ip addr查看

2. 配置默认MPI参数(避免重复输入)

若不想每次提交作业都加参数,可在用户的~/.bashrc或~/.bash_profile中添加环境变量:

export OMPI_MCA_btl_tcp_if_include=ib0
export OMPI_MCA_btl_tcp_if_exclude=lo,eth0

也可在Slurm全局配置文件(如slurm.conf)中设置,对所有用户生效。

3. 修复libibverbs警告(可选优化)

虽然不影响作业运行,但可能降低跨节点通信性能,建议:

  • 确认节点安装了对应RDMA硬件的驱动包
  • 检查/etc/libibverbs.d/下的配置文件,确保启用了正确的硬件驱动模块

验证步骤

提交双节点作业前,先在节点间测试指定接口的连通性,示例:

# 在nodeA上ping nodeB的专用接口IP
ping nodeB-ib0-ip

确认连通正常后再提交作业。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 12:07:02