我已经使用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启动器。。。