1

我正在尝试在 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

4 回答 4

3

该错误是由于客户端不知道服务器的 ip 即未连接回服务器引起的 ..main (./pm/pmiserv/pmip.c:209): unable to connect to server ubuntu at...etc

解决方法是在/etc/hostsie中添加每个主机名和相关 ip

172.17.0.2  master
172.17.0.3  node1
172.17.0.4  node2

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

于 2016-05-13T19:18:18.520 回答
1

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

对我来说,在我的主机文件中:

本地主机:8

CPUX:2

我应该有:

CPUZ:8

CPUX:2

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

于 2015-02-19T13:07:24.560 回答
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/exchangeing-ssh-keys-using-ssh-copy-id/
  5. 将可执行 MPI 程序定位到两台机器的相同路径中。
于 2013-11-18T16:12:09.307 回答
0

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

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

确保:

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

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

重要的是要记住,在您的 mpiexec 命令行上传递的内容,特别是主机名,将被发送到远程主机并在远程主机上解析

于 2018-11-21T19:41:44.243 回答