我在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防火墙没有运行,而且我可以直接进入我的机器。
答案 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建立入站和出站连接。