Ошибка сегментации MPIRUN всякий раз, когда я использую файл хоста - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь запустить программу, написанную на двух машинах, используя MPI.Он отлично работает, используя 4 ядра на локальной машине, при запуске с MPIRUN.Я уже настроил ssh так, чтобы локальный компьютер мог войти на удаленный компьютер без пароля.Всякий раз, когда я запускаю MPIRUN и указываю файл хоста, я получаю ошибку сегментации и «Адрес не сопоставлен: (некоторый адрес)».Адрес меняется каждый раз, когда я запускаю его.Иногда это просто (ноль).Это также происходит, когда я пытаюсь использовать файл хоста и запускаю образец ring_c.У меня установлен OpenMPI 3.1.2 на обоих компьютерах и для пользователя, связанного с заданием.

Содержимое файла хоста

localhost
mpiuser@192.168.1.236

Я также пытался использовать имя хоста ubuntu-vm в файле хоста.Это имя хоста находится в моем файле / etc / hosts.Когда я набираю ssh mpiuser @ ubuntu-vm или ssh mpiuser@192.168.1.236, он регистрируется без проблем и без запроса пароля.Я пытался переустановить OpenMPI несколько раз на обоих компьютерах.

Возможно ли, что это проблема, связанная с OpenMPI?Может ли mpich потенциально работать?Я не понимаю, почему так сложно начать работать.Я предположил, что использование стандартных инструкций по установке и запуск примера программы не будет проблематичным.

Я использую Ubuntu 18.04 на обеих машинах.Удаленная машина является виртуальной машиной в хосте Windows 10.Конфигурация мостового сетевого адаптера.Я помещаю программы в общую папку, доступную с обеих машин, прежде чем я попытаюсь их запустить.В случае, если мое предыдущее утверждение не было ясным, пример программы ring_c также завершается ошибкой при запуске на нескольких машинах, но не на локальном компьютере.

Командная строка:

MPIRUN -np 8 --hostfile hostfile ./ring_c

Пример вывода ошибок:

======================   ALLOCATED NODES   ======================
ubuntu-desktop: flags=0x11 slots=4 max_slots=0 slots_inuse=0 state=UP
192.168.1.236: flags=0x10 slots=1 max_slots=0 slots_inuse=0 state=UNKNOWN
=================================================================
[ubuntu-desktop:11654] *** Process received signal ***
[ubuntu-desktop:11654] Signal: Segmentation fault (11)
[ubuntu-desktop:11654] Signal code: Address not mapped (1)
[ubuntu-desktop:11654] Failing at address: 0x10

1 Ответ

0 голосов
/ 09 октября 2018

Это подлинная ошибка в Open MPI (ошибка двойного освобождения), и она была исправлена ​​в ветви master в https://github.com/open-mpi/ompi/pull/5863.

. Между тем, вы можете вручную загрузить и применить исправление, доступное по адресуhttps://github.com/open-mpi/ompi/pull/5869

Обратите внимание на список рассылки Open MPI для пользователей или репозиторий github (https://github.com/open-mpi/ompi) - лучшее место, чтобы сообщать о подобных проблемах. (mpirun никогда не должен падать, поэтомуочень маловероятная ошибка программирования)

...