多台机器上的MPICH2(HYDU_sock_connect错误)

时间:2013-11-16 13:21:45

标签: ssh mpi firewall mpich

我正在尝试在2台不同的PC上执行MPI程序。但是,当我在pc1中运行此命令时:

mpirun -hosts user@host -n 4 bin/Demo_01.exe 

我收到了这个错误:

[proxy:0:0@pc2] HYDU_sock_connect (./utils/sock/sock.c:203): unable to connect from "pc2" to "pc1" (Connection refused)

[proxy:0:0@pc2] main (./pm/pmiserv/pmip.c:209): unable to connect to server ubuntu at port 57395 (check for firewalls!)

虽然我将SSH连接配置为没有密码并且在每台计算机上都禁用了防火墙,但错误仍然存​​在。我的操作系统是Ubuntu 12.04,mpi是MPICH2。

有人可以帮忙吗?

4 个答案:

答案 0 :(得分:2)

错误是由客户端没有连接回服务器引起的,因为它不知道服务器的IP,即 ..main (./pm/pmiserv/pmip.c:209): unable to connect to server ubuntu at...etc

修复是在/etc/hosts中添加每个主机名和相关的IP,即

172.17.0.2  master
172.17.0.3  node1
172.17.0.4  node2

这应该允许主节点和节点客户端的双向通信

答案 1 :(得分:1)

我有同样的错误,但接受的答案对我没有帮助。

对于我在hosts文件中我有:

本地主机:8

CPUX:2

我应该:

CPUZ:8

CPUX:2

即节点的名称而不是localhost。也许这可能对某人有所帮助。

答案 2 :(得分:0)

固定。在我按照这些步骤操作后,错误消失了:

  1. 使用相同的用户名和密码在两台计算机上创建管理员用户帐户。
  2. 通过编辑文件来定义主机名:/ etc / hosts
  3. 在两台机器上彻底安装ssh。
  4. 配置ssh以便在没有密码的情况下进行连接。为此,请按以下链接操作: http://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/http://dustymabe.com/2012/08/18/exchanging-ssh-keys-using-ssh-copy-id/
  5. 将可执行MPI程序定位到两台计算机中的相同路径中。

答案 3 :(得分:0)

montekristo_07的回答大部分是正确的,但不是最小的;步骤#2和#3并非绝对必要。

不需要不需要编辑所有主机的/ etc / hosts文件,并且,如果您的LAN使用DHCP并且您正在运行任何本地DNS服务,则您不应编辑所有您主机的/ etc / hosts文件

确保:

  1. 在mpiexec命令行中仅引用外部可解析的主机名(即不是“ localhost”),并且
  2. 主服务器(运行mpiexec的计算机)上的/ etc / hosts文件没有 一行,将主服务器的公用名与回送地址(127.0.0.1)相关联< / li>

一个简单的测试是在mpiexec命令行中使用原义IP地址。如果这可以解决您的问题,那么这是主机名解析问题...某处。

要记住的重要一点是,将在mpiexec命令行上传递的内容(尤其是主机名)将发送到远程主机并在其上进行解析