我有两台机器,都安装了 MS MPI 7.1,一台称为 SERVER,另一台称为 COMPUTE。这两台机器在 LAN 上设置在一个简单的 Windows 工作组(无 DA)中,并且两台机器都拥有一个具有相同名称和密码的帐户。
两台机器都运行 MSMPILaunchSvc 服务。两台机器都可以在本地执行 MPI 作业,通过使用命令进行测试来hostname
验证
SERVER> mpiexec -hosts 1 SERVER 1 hostname
SERVER
or
COMPUTE> mpiexec -hosts 1 COMPUTE 1 hostname
COMPUTE
在机器本身的终端上。
为了让事情变得简单,我已禁用两台机器上的防火墙。
我的问题是我无法让 MPI 从远程主机上的 SERVER 运行作业:
1:使用 MSMPILaunchSvc 的服务器 -> 使用 MSMPILaunchSvc 的计算
SERVER> mpiexec -hosts 1 COMPUTE 1 hostname -pwd
ERROR: Failed RpcCliCreateContext error 1722
Aborting: mpiexec on SERVER is unable to connect to the smpd service on COMPUTE:8677
Other MPI error, error stack:
connect failed - The RPC server is unavailable. (errno 1722)
更令人沮丧的是,只有有时我才会被提示输入密码。它建议将 SERVER\Maarten 作为 COMPUTE 的用户,而这个帐户我已经在 SERVER 上登录了,不应该存在于 COMPUTE 上(那么应该是 COMPUTE\Maarten?)。尽管如此,它还是失败了:
SERVER>mpiexec -hosts 1 COMPUTE 1 hostname.exe -pwd
Enter Password for SERVER\Maarten:
Save Credentials[y|n]? n
ERROR: Failed to connect to SMPD Manager Instance error 1726
Aborting: mpiexec on SERVER is unable to connect to the
smpd manager on COMPUTE:50915 error 1726
2:使用 MSMPILaunchSvc 进行计算 -> 使用 MSMPILaunchSvc 进行服务器
COMPUTE> mpiexec -hosts 1 SERVER 1 hostname -pwd
ERROR: Failed RpcCliCreateContext error 5
Aborting: mpiexec on COMPUTE is unable to connect to the smpd service on SERVER:8677
Other MPI error, error stack:
connect failed - Access is denied. (errno 5)
3:使用 MSMPILaunchSvc 进行计算 -> 使用 smpd 守护进程进行服务器
Aborting: mpiexec on COMPUTE is unable to connect to the smpd service on SERVER:8677
Other MPI error, error stack:
connect failed - Access is denied. (errno 5)
4:带有 MSMPILaunchSvc 的服务器 -> 带有 smpd 守护进程的计算
ERROR: Failed to connect to SMPD Manager Instance error 1726
Aborting: mpiexec on SERVER is unable to connect to the smpd manager on
COMPUTE:51022 error 1726
答案1
经过反复试验后,我发现在尝试运行具有不同配置的 MS MPI 时会出现这些和其他不明确的错误(在我的情况下是 HPC Cluster 2008 和 HPC Cluster 2012 与 MSMPI 的混合)。
解决方案是将所有节点降级到带有 HPC Cluster 2008 的 Windows Server 2008 R2。由于我不使用 AD,所以我不得不回退到使用 SMPD 守护程序并为其添加防火墙规则(完全跳过集群管理工具)。