我有一个简单的MPICH程序,在该程序中,进程以Ring顺序互相收发消息。
我已经设置为2个相同的虚拟机,并确保网络工作正常。我已经在两台机器上测试了一个简单的MPICH程序,并且工作正常。
当我尝试在上述程序之类的不同机器上的进程之间进行通信时,就会出现问题。我收到以下错误:


  • SSH是无密码的,并且在两侧均可正常使用。
  • /etc/hosts配置正确。
  • 两台计算机上的防火墙均已禁用。
  • 已配置NFS客户端/服务器,并在它们之间共享目录。 (根据this)
  • 与Hydra一起尝试了MPICH和OpenMPI
  • 最佳答案

    我在这里所做的,并且有效!

    使用源代码(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
    

    09-06 10:45