在远程OS X计算机上运行MPI作业



我已经使用OSX的内置mpic++构建了一个并行程序,我正试图在家庭网络中的两台Mac电脑上运行MPI作业。两者都使用Snow Leopard 10.6.8,并且可以在本地运行作业。我也可以使用ssh访问另一台机器。但是,在进入之后

mpirun -n 2 --host localhost,10.0.1.2 ./enigmaMPI

有人问我密码,然后我得到这个输出:

--------------------------------------------------------------------------
Failed to find or execute the following executable:
Host:       iMac.local
Executable: ./enigmaMPI
Cannot continue.
--------------------------------------------------------------------------
mpirun noticed that job rank 0 with PID 7748 on node localhost exited on signal 15 (Terminated). 

这条消息不是很具体,不能帮助我找到解决方案…有人能帮忙吗?

我使用以下命令构建了我的程序:

mpic++ main.cpp enigma.cpp enigma.h -o enigmaMPI

该消息信息丰富。这意味着MPI无法在远程节点的同一位置找到可执行文件enigmaMPI。您必须确保:

  • enigmaMPI在CCD_ 5和CCD_
  • MPI库和运行时都安装在这两台机器上

由于您运行的是Snow Leopard,因此您很可能使用随附的Open MPI版本。然后您就不必担心第二点了。第一点意味着,如果要在本地机器上的/Users/username/project/enigmaMPI下找到enigmaMPI,则必须将其复制到另一台Mac上的相同路径。

这就是为什么大多数集群使用共享文件系统(如NFS、Lustre、GPFS),并在每个计算节点的相同位置安装。此外,正如axiom所指出的,设置无密码SSH(使用公钥)可以节省每次运行mpirun时键入的密码。

此外,据我所知,Snow Leopard仍然包括Xgrid,并且提供的Open MPI版本有一个可以通过Xgrid执行进程的模块。你只需要在第二台Mac上启用Xgrid共享,然后以某种方式使用Xgrid启动器。。。