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

如何配置GCE允许MPI通信?实例组mpirun执行挂起问题排查

嗨,看起来你在GCE上跑MPI集群的时候遇到了挂起的问题——我之前也碰到过类似的情况,大概率是网络防火墙没放行MPI所需的通信端口,或者实例间的SSH无密码登录配置不到位(毕竟MPI依赖SSH在节点间建立连接)。咱们一步步来排查和解决:

解决GCE MPI通信挂起的配置步骤

1. 先搞定实例间的无密码SSH登录

MPI在启动时会通过SSH连接各个节点,如果没有配置免密登录,mpirun会悄悄卡在等待密码输入的步骤(看起来就是挂起)。

  • 在主节点生成SSH密钥对(一路回车就行,不要设置密码):
    ssh-keygen -t rsa -f ~/.ssh/id_rsa -N ""
    
  • 把公钥复制到所有实例的授权列表里:
    # 循环读取host_file里的所有内部IP,批量复制公钥
    for ip in $(cat host_file); do
      ssh-copy-id -i ~/.ssh/id_rsa.pub $ip
    done
    
  • 测试下免密登录是否生效:随便挑一个实例IP,执行ssh <实例内部IP> hostname,如果直接返回主机名不用输密码,这一步就没问题了。

2. 配置GCE防火墙规则放行MPI通信

你勾选的「允许HTTP/HTTPS流量」只开放了80和443端口,但MPI需要用到SSH端口(22),还有动态的TCP/UDP端口(不同MPI实现略有差异,比如OpenMPI默认会用1024-65535范围内的端口)。

用控制台创建防火墙规则

  1. 登录GCE控制台,进入「VPC网络 > 防火墙」页面,点击「创建防火墙规则」。
  2. 填写规则信息:
    • 名称:比如allow-mpi-cluster-traffic
    • 网络:选择你的实例所在的VPC网络
    • 方向:入站(ingress)
    • 目标:选择「实例组」,然后选中你的8实例组
    • 源IP范围:填写实例组所在子网的CIDR(比如10.0.0.0/24,可以在「VPC网络 > 子网」页面查看)
    • 协议和端口:
      • 勾选TCP,填写22, 1024-65535
      • 勾选UDP,填写1024-65535
      • 可选:勾选ICMP,方便节点间连通性测试
  3. 点击「创建」完成配置。

用CLI快速创建(如果习惯命令行)

gcloud compute firewall-rules create allow-mpi-cluster-traffic \
  --network=your-vpc-name \  # 替换成你的VPC名称
  --direction=INGRESS \
  --target-tags=your-instance-group-tag \  # 如果实例组有标签的话,没有就删掉这行,用下面的source-ranges
  --source-ranges=10.0.0.0/24 \  # 替换成你的子网CIDR
  --allow=tcp:22,tcp:1024-65535,udp:1024-65535,icmp

3. 验证配置是否生效

先测试节点间的连通性:

# 在主节点ping所有实例的内部IP,确保都能通
for ip in $(cat host_file); do
  ping -c 3 $ip
done

如果ping都正常,再重新执行你的MPI命令:

mpirun -n 8 --hostfile host_file hostname

这时候应该能正常返回所有实例的主机名了。

4. 可选:缩小防火墙端口范围(更安全)

如果你用的是OpenMPI,可以通过环境变量指定固定的端口范围,避免开放整个1024-65535段:

# 在主节点设置环境变量,也可以写到~/.bashrc里永久生效
export OMPI_MCA_btl_tcp_port_min=10000
export OMPI_MCA_btl_tcp_port_max=11000

然后把防火墙规则里的端口范围改成10000-11000即可,这样更安全。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:40:43