我有一个简单的MPICH程序,在该程序中,进程以Ring顺序互相收发消息。
我已经设置为2个相同的虚拟机,并确保网络工作正常。我已经在两台机器上测试了一个简单的MPICH程序,并且工作正常。
当我尝试在上述程序之类的不同机器上的进程之间进行通信时,就会出现问题。我收到以下错误:
/etc/hosts
配置正确。 最佳答案
我在这里所做的,并且有效!
使用源代码(tarball)安装以下软件包
hydra
openmpi
创建的主机文件(两个节点)
# cat /home/spatel/mpi/hydra/hosts
node1
node2
在两个节点上的.bashrc中设置变量
echo HYDRA_HOST_FILE=/home/spatel/mpi/hydra/hosts >> ~/.bashrc
使用HelloWorld MPI程序可在单个节点上运行。
node1# /home/spatel/mpi/hydra/bin/mpiexec -np 1 /home/spatel/mpi/mpi_hello_world
Hello world from processor node1.example.com, rank 0 out of 1 processors
使用
-machinefile
选项在多个节点上运行-np
是处理器数量node1# /home/spatel/mpi/hydra/bin/mpiexec -np 4 -machinefile /home/spatel/mpi/hydra/hosts /home/spatel/mpi/mpi_hello_world
Hello world from processor node1.example.com, rank 0 out of 1 processors
Hello world from processor node2.example.com, rank 0 out of 1 processors
Hello world from processor node1.example.com, rank 0 out of 1 processors
Hello world from processor node2.example.com, rank 0 out of 1 processors