2

我已经使用 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
4

1 回答 1

1

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

  • enigmaMPI可以在localhost和 上的同一位置找到10.0.1.2
  • MPI 库和运行时安装在两台机器上。

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

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

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

于 2012-12-02T13:30:14.177 回答