You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Microsoft HPC Pack 2008 SDK运行MPI程序遇1722连接错误求助

解决HPC Pack 2008 MPI程序无法连接smpd manager的问题

你遇到的是HPC Pack 2008 MPI环境中smpd服务通信故障,错误码1722对应RPC服务器不可用,这是smpd(Microsoft消息传递守护进程)的典型问题。下面是一步步的排查和解决方法:

1. 检查smpd服务状态

HPC Pack的MPI依赖smpd管理进程调度,先确认服务是否正常运行:

  • 右键开始菜单,打开Windows终端(管理员)命令提示符(管理员)
  • 执行命令:sc query smpd
    • 如果输出显示STATE: 1 STOPPED,先启动服务:sc start smpd
    • 为避免重启后服务停止,设置自动启动:sc config smpd start= auto(注意start=后面必须加空格)

2. 配置smpd用户权限

smpd需要验证用户权限才能允许MPI程序连接,把当前用户添加到授权列表:

  • 在管理员终端执行:smpset -user <你的本地用户名> -pass <你的用户密码>
    • 若为域账户,格式改为:smpset -user DOMAIN\你的用户名 -pass <你的密码>

3. 放行smpd的防火墙端口

错误日志提到的56041是smpd默认通信端口,需确保防火墙不拦截:

  • 可临时关闭Windows防火墙测试(若能正常运行,说明是防火墙问题)
  • 或添加永久规则:打开Windows Defender防火墙高级设置入站规则 → 新建规则,允许C:\Program Files\Microsoft HPC Pack 2008\Bin\smpd.exe的所有连接

4. 验证MPI环境与编译配置

  • 确认HPC Pack 2008的Bin目录已加入系统PATH(如C:\Program Files\Microsoft HPC Pack 2008\Bin),避免调用其他版本的mpiexec/smpd
  • 检查编译命令是否正确链接HPC Pack的MPI库,以x64环境为例:
    cl /EHsc ReadText.cpp /I"C:\Program Files\Microsoft HPC Pack 2008\Include" /link /LIBPATH:"C:\Program Files\Microsoft HPC Pack 2008\Lib\x64" msmpi.lib
    

5. 手动启动smpd调试

若自动启动的smpd有异常,尝试手动启动并指定端口:

  • 管理员终端执行:smpd -d -p 56041-d为调试模式,会输出详细日志)
  • 保持该窗口打开,再开一个管理员终端运行你的MPI命令:mpiexec -n 1 ReadText.exe

如果以上步骤都未解决,可查看debug输出中的RPC相关日志,进一步定位是端口绑定失败还是用户权限验证问题。

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

火山引擎 最新活动