hwlo c + lstopo Не удалось создать топологию на двухпроцессорной машине для Open-MPI - PullRequest
0 голосов
/ 14 января 2020

Я пытался настроить рабочую станцию ​​с двумя процессорами (Dell Precision 7820) для запуска локальных параллельных заданий с использованием openmpi 2.1.1-8 (как предустановлено в Ubuntu 18.04), однако он не запускается со следующей ошибкой:

mpirun: pci-common.c:125: hwloc_pci_compare_busids: Assertion `0' failed.

Изучая исходный код pci-common. c перед строкой assert (0) можно найти комментарий, в котором говорится, что ничто обычно не должно достигать этой точки, и прервет все отладочные и не отладочные сборки , Попытка сгенерировать карту топологии системы с помощью lstopo (программа в hwlo c) также завершается схожей ошибкой.

Мне удалось локально скомпилировать более новую версию hwlo c (по сравнению с 2.0.4) к предварительно установленному 1.11.9-1) и обнаружил, что я смог получить lstopo только для генерации карты топологии, когда скомпилировал hwlo c с использованием libpciaccess-dev поверх стандартного libpciaccess0, который поставляется с предустановленным. Сводный результат выполнения hwlo c с различными библиотеками pciaccess отображает следующие результаты

Probe / display I/O devices: PCI(linux) LinuxIO GL

Probe / display I/O devices: PCI(pciaccess+linux) LinuxIO GL

: первый компилируется с помощью libpciaccess0, а второй - с помощью libpciaccess-dev. Опять же, последний является единственным, способным генерировать карту топологии системы, и у меня сложилось впечатление, что openmpi нужна эта информация для правильного распределения заданий в системе. В настоящее время я не уверен, как применить эти изменения версии к текущему пакету openmpi или нужно ли что-то компилировать полностью из исходного кода. Существует ли потенциально более простой способ решения этой проблемы?

1 Ответ

0 голосов
/ 19 января 2020

Проблема была решена методом проб и ошибок. Сначала очистите установку openmpi из системы (если она установлена ​​через apt):

sudo apt purge openmpi-bin
sudo apt purge openmpi-common

Затем загрузите hwlo c 1.11.13 (ultrastable) из https://www.open-mpi.org/software/hwloc/v1.11/ и извлечь в локальный каталог. Введите каталог hwlo c и в командной строке введите:

./configure
make
sudo make install

После этого установите libhwloc5, затем openmpi из apt:

sudo apt-get install libhwloc5
sudo apt-get install openmpi-bin
sudo apt-get install openmpi-common

Open-MPI должен работать как теперь, и вы должны иметь возможность генерировать системную топологию, запустив lstopo, и убедиться, что mpi работает, запустив mpirun без ошибок.

Надеюсь, что это поможет любому, у кого в будущем возникнет подобная проблема!

...