在一台机器上使用OS X上的mpirun

时间:2011-03-02 23:50:35

标签: macos openmpi

我在OS X上以单机模式使用mpirun时遇到问题。使用mpirun -np 5 my_program运行程序时出现以下错误输出:

[...-MacBook-Pro.local:85936] [0,0,0] ORTE_ERROR_LOG: Timeout in file /SourceCache/openmpi/openmpi-8/openmpi/orte/mca/pls/base/pls_base_orted_cmds.c at line 275
[...-MacBook-Pro.local:85936] [0,0,0] ORTE_ERROR_LOG: Timeout in file /SourceCache/openmpi/openmpi-8/openmpi/orte/mca/pls/rsh/pls_rsh_module.c at line 1158
[...-MacBook-Pro.local:85936] [0,0,0] ORTE_ERROR_LOG: Timeout in file /SourceCache/openmpi/openmpi-8/openmpi/orte/mca/errmgr/hnp/errmgr_hnp.c at line 90
mpirun noticed that job rank 1 with PID 85940 on node ...-MacBook-Pro.local exited on signal 6 (Abort trap). 
2 additional processes aborted (not shown)

显然,默认情况下mpirun使用rsh连接到计算机。我尝试使用ssh,但它没有帮助:

mpirun --mca pls_rsh_agent ssh -np 5 my_program

然后,我尝试使用共享内存(sm)BTL,这也没有帮助:

mpirun --mca btl self,sm -np 5 my_program

最后,我尝试使用一个机器文件来指定我只想使用localhost,这对任何一个都没有帮助:

mpirun -np 5 -machinefile machinefile.local my_program

此处,machinefile.local仅在(单个)第一行包含localhost

在上述所有情况下,我都会收到上述超时错误。

另外,我确认我的Mac OS X防火墙没有运行,而且我可以直接进入我的机器。

2 个答案:

答案 0 :(得分:0)

所以看起来你正在使用fink的OpenMPI版本,是吗?你还在/ usr / bin和/ usr / lib中有原始的1.2.x MPI吗?寻找奇怪的启动问题的第一个地方是MPI库的冲突版本。

首先尝试像/usr/bin/mpirun -np 5 hostname这样简单的事情,然后你的fink mpirun做同样的事情:/path/to/fink/mpirun -np 5 hostname,只是为了确保两个MPI发射器在非MPI程序上工作。然后在ldd上执行my_program;哪个库链接到?对这些库使用适当的mpirun,看看是否有效。

答案 1 :(得分:0)

检查防火墙并确保它允许mpirun建立入站和出站连接。