Проблемы с запуском приложения MPI (OpenMPI) в Linux на ARM

Я пытаюсь следовать этому руководству для создания и запуска приложения MPI. в системе Ubuntu 11.10 на базе ARM.

При установке среды open-mpi на моем ПК пример программы работает хорошо. Однако, пытаясь сделать то же самое на машине ARM, терминал зависает, и мне нужно убить процесс MPI со второго терминала, чтобы освободить его.

Пакеты MPI, которые я установил с помощью apt-get, на обеих машинах были mpi-default-dev и mpi-default-bin, поэтому я предполагаю, что пакеты настолько обновлены, насколько это возможно.

Первый пример программы в учебнике заставляет каждый процесс печатать приветственное сообщение с некоторой информацией. На ПК мне приходят сообщения от всех 8 процессов (хотя и запущенных на одном ядре) и тут программа завершается. На ARM я вообще ничего не получаю. Программа просто зависает сразу после запуска.

Есть идеи, что не так? Я даже не знаю, с чего начать отладку?

Обновление: я попытался удалить пакет OpenMPI и установить альтернативный пакет MPICH2, но результат тот же.


person ysap    schedule 13.01.2013    source источник
comment
Попробуйте запустить свою программу только в одном процессе mpiexec -n 1 или в любом другом его варианте, который вы используете.   -  person High Performance Mark    schedule 14.01.2013
comment
@HighPerformanceMark - спасибо, уже пробовал.   -  person ysap    schedule 14.01.2013
comment
@HighPerformanceMark - на самом деле, следуя руководству, я использовал mpirun -np1 .... Должно ли это иметь значение?   -  person ysap    schedule 14.01.2013
comment
Я бы не ожидал такого. Я использую mpiexec, потому что он является стандартным для всех реализаций MPI (или должен быть). Раньше были различия в возможностях и синтаксисе mpirun в разных реализациях MPI, но то, что вы написали, мне кажется нормальным.   -  person High Performance Mark    schedule 14.01.2013
comment
@HighPerformanceMark - попробовал. mpiexec тоже не работает.   -  person ysap    schedule 14.01.2013
comment
Интересная цитата из справочной страницы: Note: mpirun, mpiexec, and orterun are all synonyms for each other. Using any of the names will produce the same behavior.   -  person ysap    schedule 14.01.2013
comment
orterun — это средство запуска ORTE (Open MPI Runtime Environment). ORTE — одна из основных сред, на которых построен Open MPI.   -  person Hristo Iliev    schedule 15.01.2013
comment
@HristoIliev - спасибо. Глядя на каталог bin/ можно увидеть, что mpirun и mpiexec являются символическими ссылками на oprterun.   -  person ysap    schedule 15.01.2013


Ответы (1)


Ubuntu 11.10 не поставлялась с функциональной реализацией Open MPI для ARM (хотя она могла поставляться с нефункциональной). Убунту 12.04 сделал.

Я бы рекомендовал создать свой собственный Open MPI из исходного кода, доступного по адресу http://www.open-mpi.org/software/ompi/v1.6/, если вы не можете обновить Ubuntu до более новой версии.

Кроме того, вы можете пересобрать пакет 11.10, используя исправления, указанные в https://bugs.launchpad.net/ubuntu/+source/openmpi/+bug/949044.

person unixsmurf    schedule 14.01.2013
comment
Спасибо, это может объяснить, почему готовые пакеты не работали. Вчера я собрал пакет из исходников, скачанных с сайта OpenMPI. Это потребовало некоторой тщательной очистки системы от остатков старых пакетов, но после этого теперь он запускает пример hello-world на одном компьютере. - person ysap; 14.01.2013