сбой mpiexec при прерывании инициализации MPI - PullRequest
10 голосов
/ 10 августа 2011

Я пытаюсь установить 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. Я что-то упустил?

Ответы [ 3 ]

11 голосов
/ 02 ноября 2012

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

2 голосов
/ 10 августа 2011

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

dpkg --listfiles mpich2

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

0 голосов
/ 09 августа 2012

У меня было такое со мной, и я нашел проблему.Где-то в вашей системе во время запуска 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.

...