因此,我有另一台台式电脑作为服务器,primesystem
还有一台笔记本电脑作为客户端,zerosystem
与它相连。它们分别作为我的ssh-server
和ssh-client
,并通过以太网(非交叉)电缆连接。
我都遵循了这些教程中所述的说明:
在 LAN 内运行 MPI 集群和在 Ubuntu 中设置 MPICH2 集群,只是我想使用 的 MPI 实现python
,所以我用它来mpi4py
测试两台 PC 是否都可以使用 MPI。
我设置了一个目录/cloud
,primesystem
该目录将在我的网络中共享,并且zerosystem
按照第一个教程的指示将其安装在我的 中(因此我也可以在两个系统中工作,而无需通过 登录ssh
)。
在服务器或中primesystem
,如果我运行示例 helloworld脚本,它可以正常工作:
one@primesystem:/cloud$ mpirun -np 5 -hosts primesystem python -m mpi4py helloworld
Hello, World! I am process 0 of 5 on primesystem.
Hello, World! I am process 1 of 5 on primesystem.
Hello, World! I am process 2 of 5 on primesystem.
Hello, World! I am process 3 of 5 on primesystem.
Hello, World! I am process 4 of 5 on primesystem.
如果我通过主机运行它,情况也是如此zerosystem
(但需要注意的是,由于使用外部 CPU,执行过程中会出现明显的延迟zerosystem
):
one@primesystem:/cloud$ mpirun -np 5 -hosts zerosystem python -m mpi4py helloworld
Hello, World! I am process 0 of 5 on zerosystem.
Hello, World! I am process 1 of 5 on zerosystem.
Hello, World! I am process 2 of 5 on zerosystem.
Hello, World! I am process 3 of 5 on zerosystem.
Hello, World! I am process 4 of 5 on zerosystem.
但如果我使用这两个主机,它似乎根本没有响应:
one@primesystem:/cloud$ mpirun -np 5 -hosts primesystem,zerosystem python -m mpi4py helloworld
Hello, World! I am process 0 of 5 on primesystem.
(如果我交换了主机的顺序,zerosystem
那么第一个主机就不会显示 Hello World 响应)
我尝试在文件中输入主机列表.mpi-config
及其各自要生成的进程,然后利用-f
参数而不是-hosts
zerosystem:4
primesystem:2
但它仍然得到相同的响应,几秒钟或几分钟后,这是错误输出:
one@primesystem:/cloud$ mpirun -np 6 -f .mpi-config python -m mpi4py helloworld
===================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= PID 23329 RUNNING AT primesystem
= EXIT CODE: 139
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
[proxy:0:1@zerosystem] HYD_pmcd_pmip_control_cmd_cb (pm/pmiserv/pmip_cb.c:886): assert (!closed) failed
[proxy:0:1@zerosystem] HYDT_dmxu_poll_wait_for_event (tools/demux/demux_poll.c:76): callback returned error status
[proxy:0:1@zerosystem] main (pm/pmiserv/pmip.c:206): demux engine error waiting for event
[mpiexec@primesystem] HYDT_bscu_wait_for_completion (tools/bootstrap/utils/bscu_wait.c:76): one of the processes terminated badly; aborting
[mpiexec@primesystem] HYDT_bsci_wait_for_completion (tools/bootstrap/src/bsci_wait.c:23): launcher returned error waiting for completion
[mpiexec@primesystem] HYD_pmci_wait_for_completion (pm/pmiserv/pmiserv_pmci.c:218): launcher returned error waiting for completion
[mpiexec@primesystem] main (ui/mpich/mpiexec.c:336): process manager error waiting for completion
这是为什么?有什么想法吗?