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

时间:2012-12-02 08:27:25

标签: macos osx-snow-leopard mpi openmpi

我使用OS X的内置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

1 个答案:

答案 0 :(得分:1)

该消息尽可能提供信息。这意味着MPI无法在远程节点上的相同位置找到可执行文件enigmaMPI。你必须确保:

  • enigmaMPI可以在localhost10.0.1.2上的同一位置找到;
  • 两台计算机上都安装了MPI库和运行时。

自从你运行Snow Leopard以来,你最有可能使用随附的Open MPI版本。那你就不用担心第二点了。第一点意味着,如果要在enigmaMPI下找到本地计算机/Users/username/project/enigmaMPI,则必须将其复制到另一台Mac上的相同路径。

这就是为什么大多数集群使用共享文件系统(如NFS,Lustre,GPFS)并将其安装在每个计算节点上的相同位置的原因。另外,正如公理所指出的那样,设置无密码SSH(使用公钥)可以避免每次运行mpirun时输入密码。

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