【问题标题】:Using mpirun on OS X on one machine在一台机器上的 OS X 上使用 mpirun
【发布时间】:2011-03-02 23:50:35
【问题描述】:

我在 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 防火墙没有运行,我可以 ssh 进入我的机器。

【问题讨论】:

    标签: macos openmpi


    【解决方案1】:

    看来您使用的是 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 程序上工作。然后在my_program 上执行ldd;它链接到哪些库?为这些库使用适当的mpirun,看看是否可行。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2010-10-03
        • 1970-01-01
        • 2016-05-11
        • 1970-01-01
        • 1970-01-01
        • 2015-03-15
        • 2016-06-14
        • 2018-01-06
        • 1970-01-01
        相关资源
        最近更新 更多