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

MS-MPI与MPI4PY在Windows集群环境下无法正常运行求助

Windows MPI集群运行卡住问题排查方案

问题场景

局域网由1台Windows 10 Pro管理节点和3台Windows 11 Pro工作节点组成,所有节点均已安装:

  • MSMPI Microsoft MPI Startup Program Version 10.1.12498.52
  • MPI4PY v.3.1.5
  • Python 3.11.5

测试代码mpitest.py在各节点本地运行正常:

from mpi4py import MPI
comm = MPI.COMM_WORLD
rank = comm.Get_rank()

print("I am the process ",rank)

本地执行命令:

mpiexec python mpitest.py

但集群运行时出现异常:mpitest.py已放置在所有节点的C:\目录,仅管理节点C:\下有hosts.txt(内容为工作节点IP):

xxx.xxx.xxx.1
xxx.xxx.xxx.2
xxx.xxx.xxx.3

执行集群启动命令后,管理节点无报错、处于等待状态,未收到各节点输出:

mpiexec -machinefile hosts.txt python mpitest.py

注:节点间Ping通信正常,已关闭防火墙及防护软件。

排查步骤

1. 验证账户一致性与远程权限

MSMPI依赖Windows本地账户进行远程身份验证,需确保:

  • 所有节点使用相同用户名、密码的本地账户(不可用Microsoft账户),且该账户拥有管理员权限。
  • 用psexec测试远程执行能力,比如在管理节点运行:
    psexec \\xxx.xxx.xxx.1 python --version
    
    若无法执行,说明账户权限或远程执行服务存在问题。

2. 修正hosts.txt格式

  • 若需要管理节点参与计算,需将管理节点的IP/主机名加入hosts.txt;仅工作节点运行时,可在每个IP后指定进程数,比如xxx.xxx.xxx.1:1(每个节点跑1个进程)。
  • 确保文件为纯文本格式(记事本保存为ANSI或UTF-8无BOM),无多余空格、换行。

3. 指定Python完整路径

集群节点的Python路径可能存在差异,执行命令时需指定完整路径,避免环境变量不一致导致的问题:

mpiexec -machinefile hosts.txt "C:\Python311\python.exe" C:\mpitest.py

4. 启用MSMPI调试日志

添加调试参数生成日志,查看远程连接细节:

mpiexec -machinefile hosts.txt -logfile mpi_debug.log python mpitest.py

查看mpi_debug.log,可定位连接失败、进程启动失败等具体原因。

5. 检查MSMPI服务状态

在所有工作节点的服务管理器中,确认Microsoft MPI Service服务已启动,且启动类型设为自动。若服务未运行,手动启动后重新测试。

6. 确认文件路径与权限一致性

  • 验证所有节点的mpitest.py确实在C:\根目录,且指定账户拥有读取、执行权限。
  • 在工作节点手动执行python C:\mpitest.py,确认本地运行无问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 09:34:54