【问题标题】:Unable to execute MPICH2 on multiple machines on ubuntu 12.04 (HYDU_sock_connect issue)无法在 ubuntu 12.04 上的多台机器上执行 MPICH2(HYDU_sock_connect 问题)
【发布时间】:2023-03-22 14:59:01
【问题描述】:

我在两台机器上执行 MPI 程序时遇到困难。操作系统是 Ubuntu 12.04。而 MPI 的实现是 MPICH2

ssh 工作正常:

  root@ubuntu:/home# ssh 192.168.1.9
root@gpuguy's password: 
Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.8.0-29-generic i686)

 * Documentation:  https://help.ubuntu.com/

131 packages can be updated.
67 updates are security updates.

Last login: Thu Oct 24 17:36:25 2013 from ubuntu.local
root@gpuguy:~# 

但是当我运行我的 MPI 程序时它失败了:

root@ubuntu:/home# mpiexec -f hosts.cfg -n 4 hello
root@192.168.1.9's password:
[proxy:0:0@gpuguy] HYDU_sock_connect (./utils/sock/sock.c:171): unable to get host address for ubuntu (1)
[proxy:0:0@gpuguy] main (./pm/pmiserv/pmip.c:209): unable to connect to server ubuntu at port 42104 (check for firewalls!)

我已经在两台机器上禁用了防火墙,这就是我可以成功执行 ssh 的原因。但是如何解决这个问题呢?

我的 MPI 代码在单台机器上成功运行。

【问题讨论】:

    标签: mpi mpich


    【解决方案1】:

    要使 MPICH(或任何 MPI 实现)工作,您需要设置无密码 SSH。我还应该提到,你真的不应该以 root 身份登录来完成这项工作。始终以 root 身份登录通常是一个非常糟糕的主意。

    【讨论】:

    • 我已经设置了无密码 ssh,但是当我运行 mpirun 命令时,我收到一条错误消息“[proxy:0:0@gauss-mic0] HYDU_sock_connect (./utils/sock/sock.c:264) :无法从“gauss-mic0”连接到“127.0.1.1”(连接被拒绝)[proxy:0:0@gauss-mic0] main (./pm/pmiserv/pmip.c:396):无法连接到服务器 127.0.1.1 在端口 42947(检查防火墙!)“
    • 如果您还有其他问题,您需要单独发布,而不是尝试通过 cmets 完成所有操作。
    【解决方案2】:

    /etc/hosts文件中,添加每个服务器的IP地址和它的主机名。 您应该为所有服务器执行此操作。

    例如:

    10.10.0.5    server1
    10.10.0.6    server2
    10.10.0.7    server3
    

    只需签入 /etc/hosts 文件,使用 tab (\t) 代替空格分隔 ip地址主机名

    这是错误的:

    10.10.0.5 \t server1
    

    这是真的:

    10.10.0.5    server1
    

    注意不要删除或修改 /etc/hosts 文件中已有的行。只在文件末尾添加新行。

    此外,您无需禁用防火墙即可解决此问题。

    【讨论】:

      猜你喜欢
      • 2013-11-29
      • 1970-01-01
      • 2012-10-15
      • 2012-12-20
      • 2017-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多