【问题标题】:MPICH2 on multiple machines (HYDU_sock_connect error)多台机器上的 MPICH2(HYDU_sock_connect 错误)
【发布时间】:2013-11-29 21:37:53
【问题描述】:

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

有人帮忙吗?

【问题讨论】:

  • 已修复。在我按照这些步骤操作后,错误消失了: 1. 在两台机器上使用相同的用户名和密码创建管理员用户帐户。 2. 通过编辑文件定义主机名:/etc/hosts 3. 在两台机器上进行 ssh 的全新安装。 4. 配置 ssh 进行无密码连接。为此,请点击以下链接:thegeekstuff.com/2008/11/…dustymabe.com/2012/08/18/exchanging-ssh-keys-using-ssh-copy-id 5. 将可执行 MPI 程序定位到两台机器的相同路径中。
  • 您应该将您的评论移至答案并将问题标记为已回答,以便未来的访问者可以找到解决方法。

标签: ssh mpi firewall mpich


【解决方案1】:

该错误是由于客户端不知道服务器的 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

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

【讨论】:

    【解决方案2】:

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

    对我来说,在我拥有的 hosts 文件中:

    本地主机:8

    CPUX:2

    我应该有的:

    CPUZ:8

    CPUX:2

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

    【讨论】:

      【解决方案3】:

      已修复。在我按照这些步骤操作后,错误消失了:

      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 程序定位到两台机器的相同路径中。

      【讨论】:

        【解决方案4】:

        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 命令行上传递的内容,特别是 主机名,将被发送到远程主机并在 解析 .

        【讨论】:

          猜你喜欢
          • 2023-03-22
          • 2018-10-05
          • 1970-01-01
          • 2023-03-29
          • 2016-04-19
          • 2015-11-08
          • 2016-02-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多