Назад | Перейти на главную страницу

MPI не может найти интерфейс Infiniband точка-точка

Думаю, у меня проблема с настройкой Infiniband. Я не очень разбираюсь в настройке Infiniband или сетей. Если я попытаюсь заставить MPICH использовать IB, я получаю ошибки:

[Bryan@node1 shared]$ ./mpich-3.3.1/bin/mpiexec -hosts=node1,node2 -iface=ib0 -n 4 ./test
[mpiexec@node1] HYDU_sock_get_iface_ip (../../../../mpich-3.3.1/src/pm/hydra/utils/sock/sock.c:496): unable to find interface ib0
[mpiexec@node1] HYDU_sock_create_and_listen_portstr (../../../../mpich-3.3.1/src/pm/hydra/utils/sock/sock.c:550): unable to get network interface IP
[mpiexec@node1] HYD_pmci_launch_procs (../../../../mpich-3.3.1/src/pm/hydra/pm/pmiserv/pmiserv_pmci.c:114): unable to create PMI port
[mpiexec@node1] main (../../../../mpich-3.3.1/src/pm/hydra/ui/mpich/mpiexec.c:332): process manager returned error launching processes

Похожая проблема с OpenMPI. Несколько дней я пытался это решить. Наверное, что-то простое, что я упустил.

Дополнительная информация:
1. Я установил Mellanox ConnectX-3 MCX354A-QCBT на две машины; узел1 и узел2. Подключили порт 1 к порту 1 напрямую друг к другу. Нет переключателя. Нет подключения к порту 2.
2. На каждой машине работает Centos 7.
3. Настройте SSH без пароля.
4. Установил драйвера Mellanox.
5. Установил MPICH в общую папку.
6. Я запускаю драйверы Mellanox на обеих машинах с помощью sudo mst start.
7. Запускаю opensm на node1. Он переходит в состояние мастера.

проверяю соединение, выглядит неплохо:

[Bryan@node1 shared]$ sudo ibnodes
Ca      : 0x0002c90300ee7620 ports 2 "node2 HCA-1"
Ca      : 0x0002c90300ee69e0 ports 2 "node1 HCA-1"

Я также использовал ibping для проверки соединения. Вроде все нормально.

Я запускаю тестовую программу MPI без принудительного IB, отлично работает:

[Bryan@node1 shared]$ ./mpich-3.3.1/bin/mpicc -std=c11 MPI_Test.c -o test
[Bryan@node1 shared]$ ./mpich-3.3.1/bin/mpiexec -hosts=node1,node2 -n 4 ./test
Rank 0: Hostname node1
Rank 2: Hostname node1
Rank 1: Hostname node2
Rank 3: Hostname node2

nmcli показывает отключенный. Я думал, что MPI не нужен IP-адрес для IB, но все равно попытался установить соединение:

[Bryan@node1 shared]$ sudo nmcli con add con-name ib0 ifname ib0 type infiniband ip4 10.0.0.1
[sudo] password for Bryan:
Connection 'ib0' (09669a93-98b3-4fcb-9fed-ea65fff65e24) successfully added.
[Bryan@node1 shared]$ nmcli device status
DEVICE  TYPE        STATE        CONNECTION
enp4s0  ethernet    connected    enp4s0
ib0     infiniband  connected    ib0
ib1     infiniband  unavailable  --
[Bryan@node1 shared]$ nmcli device show ib0
GENERAL.DEVICE:                         ib0
GENERAL.TYPE:                           infiniband
GENERAL.HWADDR:                         A0:00:02:20:FE:80:00:00:00:00:00:00:00:02:C9:03:00:EE:69:E1
GENERAL.MTU:                            2044
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     ib0
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/54
IP4.ADDRESS[1]:                         10.0.0.1/32
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 10.0.0.1/32, nh = 0.0.0.0, mt = 150
IP6.ADDRESS[1]:                         fe80::7a74:c87f:2d49:2cfc/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 150
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255

Я сделал то же самое с node2, за исключением того, что использовал 10.0.0.2 в качестве IP.

Если я попытаюсь снова запустить принудительный запуск IB после настройки IP-адресов, он просто зависнет, пока я не нажму Ctrl + C. Что я пропустил?

После добавления --with-device = ch3: nemesis: mxm, как предложил Томас, процесс настройки сообщил мне, что библиотеки Mellanox не могут быть найдены. Добавление --with-mxm = / opt / mellanox / mxm в параметры настройки решило проблему.

README содержит более подробную информацию, чем mpich-3.3.1-installguide.pdf с mpich.org.