Использование mpirun на OS X на одной машине - PullRequest
1 голос
/ 03 марта 2011

У меня проблемы с использованием mpirun в режиме одного компьютера на OS X. При запуске моей программы с использованием 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

Затем я попытался использовать BTL с общей памятью (sm), который тоже не помог:

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 в мою машину.

Ответы [ 2 ]

0 голосов
/ 04 марта 2011

Проверьте брандмауэр и убедитесь, что он позволяет mpirun устанавливать входящие и исходящие соединения.

0 голосов
/ 03 марта 2011

Похоже, вы используете версию OpenMPI от fink, верно?У вас все еще есть оригинальный MPI 1.2.x в / usr / bin и / usr / lib?Первое место, где нужно искать странные проблемы с запуском, - это конфликтующие версии библиотек MPI.

Сначала попробуйте что-нибудь простое, например /usr/bin/mpirun -np 5 hostname, а затем, где бы ни находился ваш fink mpirun, делайте одно и то же: /path/to/fink/mpirun -np 5 hostname, просто чтобы убедиться, что два средства запуска MPI работают не в программе MPI.Затем сделайте ldd на my_program;на какие библиотеки он ссылается?Используйте соответствующий mpirun для этих библиотек и посмотрите, работает ли он.

...