mpiexec терпит неудачу, так как инициализация MPI прерывается

Я пытаюсь установить MPICH 2 на 64-разрядную машину с Ubuntu 11.04 (Natty Narwhal). я использовал

sudo apt-get install mpich2

Сначала я был удивлен, увидев, что mpd не установлен. Поискав в Google, я увидел, что Hydra — это новый менеджер пакетов по умолчанию. Поэтому я попытался запустить свой код MPI. Я получил следующую ошибку.

> -------------------------------------------------------------------------------------------
> [ip-10-99-75-58:02212] [[INVALID],INVALID] ORTE_ERROR_LOG: A
> system-required executable either could not be found or was not
> executable by this user in file
> ../../../../../../orte/mca/ess/singleton/ess_singleton_module.c at
> line 357 [ip-10-99-75-58:02212] [[INVALID],INVALID] ORTE_ERROR_LOG: A
> system-required executable either could not be found or was not
> executable by this user in file
> ../../../../../../orte/mca/ess/singleton/ess_singleton_module.c at
> line 230 [ip-10-99-75-58:02212] [[INVALID],INVALID] ORTE_ERROR_LOG: A
> system-required executable either could not be found or was not
> executable by this user in file ../../../orte/runtime/orte_init.c at
> line 132
> --------------------------------------------------------------------------
> It looks like orte_init failed for some reason; your parallel process
> is likely to abort.  There are many reasons that a parallel process
> can fail during orte_init; some of which are due to configuration or
> environment problems.  This failure appears to be an internal failure;
> here's some additional information (which may only be relevant to an
> Open MPI developer):
> 
>   orte_ess_set_name failed   --> Returned value A system-required
> executable either could not be found or was not executable by this
> user (-127) instead of ORTE_SUCCESS
> --------------------------------------------------------------------------
> --------------------------------------------------------------------------
> It looks like MPI_INIT failed for some reason; your parallel process
> is likely to abort.  There are many reasons that a parallel process
> can fail during MPI_INIT; some of which are due to configuration or
> environment problems.  This failure appears to be an internal failure;
> here's some additional information (which may only be relevant to an
> Open MPI developer):
> 
>   ompi_mpi_init: orte_init failed   --> Returned "A system-required
> executable either could not be found or was not executable by this
> user" (-127) instead of "Success" (0)
> --------------------------------------------------------------------------
> *** The MPI_Init() function was called before MPI_INIT was invoked.
> *** This is disallowed by the MPI standard.
> *** Your MPI job will now abort.
> -------------------------------------------------------------------------------------------

Во-первых, мне это кажется ошибкой Open MPI. Но я установил MPICH 2, а не Open MPI.

Во-вторых, я знаю, как с этим справиться, поскольку вся помощь, похоже, направлена ​​пользователям Open MPI. Я что-то пропустил?


person Aman Neelappa    schedule 10.08.2011    source источник


Ответы (3)


У меня такая же проблема на Ubuntu 12.04. Я считаю, что моя проблема в том, что на моем компьютере есть и open-mpi, и mpich2. Когда я компилирую свою программу с помощью mpicc, она будет связана с open-mpi, а не с mpich2. Чтобы решить эту проблему, вы можете использовать "mpicc.mpich2" для компиляции вашей программы, а затем использовать "mpiexec.mpich2" для выполнения вашего кода.

person hanqiang    schedule 02.11.2012
comment
Исправлено для меня. Также у вас опечатка, должно быть: mpiexec.mpich2 . Спасибо! - person kgadek; 15.10.2013
comment
Я использую mpiexec.mpich запускаю код.mpicc.mpich2 hello.c -o h mpiexec.mpich -np <num> ./h - person lindexi; 18.12.2016

Действительно, все эти сообщения об ошибках являются ошибками Open MPI. По какой-то причине кажется, что у вас также где-то установлена ​​(плохо сконфигурированная?) копия Open MPI. Вы можете проверить, какой именно файл вы выполняете, когда вы вводите mpiexec, запустив which mpiexec. Я считаю, что вы можете сравнить это с результатом:

dpkg --listfiles mpich2

(или аналогичный), чтобы выяснить, где был установлен пакет MPICH2.

person Dave Goodell    schedule 10.08.2011
comment
Привет Дэйв. Спасибо за ответ. Однако я получаю ту же ошибку, даже если я явно использую исполняемый файл mpiexec, который я получаю, компилируя mpich2 из исходного кода. Использует ли mpich некоторые библиотеки openmpi внутри? - person Aman Neelappa; 11.08.2011
comment
Нет, MPICH2 не использует какие-либо библиотеки или исполняемые файлы Open MPI. Убедитесь, что вы также используете скрипт-оболочку mpicc (или аналогичный), поставляемый с MPICH2, при создании приложения. Сообщение, которое вы видите, указывает на то, что вы создали свое приложение с помощью Open MPI mpicc. - person Dave Goodell; 12.08.2011

У меня это случилось со мной, и я нашел проблему. Где-то в вашей системе во время запуска LD_PRELOAD был установлен так, чтобы указывать на libmpi.so в OpenMPI.

Пример:

export LD_PRELOAD=<some_directory>/openmpi/1.4.4/lib/libmpi.so

В результате MPICH2 выходит из строя. Просто сделайте 'unset LD_PRELOAD' перед запуском MPICH2, и проблема исчезнет.

Обратите внимание, что установка LD_PRELOAD для libmpi.so OpenMPI на самом деле иногда требуется для работы OpenMPI, поэтому отмена установки может привести к поломке OpenMPI для вас. Просто не забудьте сбросить его, если вам нужно использовать OpenMPI.

person Carson Holt    schedule 09.08.2012