bash: /usr/bin/hydra_pmi_proxy: нет такого файла или каталога

Я пытаюсь настроить кластер MPI, следуя руководству по Настройка кластера MPICH2 в Ubuntu . У меня что-то работает, и мой машинный файл таков:

pythagoras:2  # this will spawn 2 processes on pythagoras
geomcomp      # this will spawn 1 process on geomcomp

В учебнике говорится:

и запустите его (параметр рядом с -n указывает количество процессов, которые нужно создать и распределить между узлами): mpiu@ub0:~$ mpiexec -n 8 -f machinefile ./mpi_hello

С -n 1 и -n 2 все работает нормально, но с -n 3 происходит сбой, как вы можете видеть ниже:

gsamaras@pythagoras:/mirror$ mpiexec -n 1 -f machinefile ./mpi_hello            
Hello from processor 0 of 1
gsamaras@pythagoras:/mirror$ mpiexec -n 2 -f machinefile ./mpi_hello
Hello from processor 0 of 2
Hello from processor 1 of 2
gsamaras@pythagoras:/mirror$ mpiexec -n 3 -f machinefile ./mpi_hello
bash: /usr/bin/hydra_pmi_proxy: No such file or directory
{hungs up}

Может быть, этот параметр рядом с -n указывает количество машин? Я имею в виду, что количество процессов указано в машинном файле, не так ли? Кроме того, я использовал 2 машины для кластера MPI (надеюсь, что это так, и я получаю результат не только от главного узла (т. е. pythagoras), но и от ведомого (т. е. geomcomp)).

Изменить_1

Ну, я думаю, что параметр рядом с -n на самом деле указывает количество процессов, поскольку в учебнике, на который я ссылался, он использует 4 машины, а машинный файл подразумевает, что будет запущено 8 процессов. Тогда зачем нам нужен этот параметр рядом с -n? Какой бы ни была причина, я до сих пор не могу понять, почему мой запуск завершается с ошибкой -n 3.

Изменить_2

После Edit_1 это -n 3 логично, поскольку мой машинный файл подразумевает создание 3 процессов.

Изменить_3

Я думаю, что проблема заключается в том, что он пытается создать процесс в ведомом узле (например, geomcomp).

Изменить_4

pythagoras работает на Debian 8, а geomcomp работает на Debian 6. Машины имеют одинаковую архитектуру. Проблема заключается в geomcomp, так как я пробовал mpiexec -n 1 ./mpi_hello там и сказал, что не запускается демон.

Итак, я получил в пифагоре:

gsamaras@pythagoras:~$ mpichversion
MPICH Version:      3.1
MPICH Release date: Thu Feb 20 11:41:13 CST 2014
MPICH Device:       ch3:nemesis
MPICH configure:    --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-shared --prefix=/usr --enable-fc --disable-rpath --disable-wrapper-rpath --sysconfdir=/etc/mpich --libdir=/usr/lib/x86_64-linux-gnu --includedir=/usr/include/mpich --docdir=/usr/share/doc/mpich --with-hwloc-prefix=system --enable-checkpointing --with-hydra-ckpointlib=blcr
MPICH CC:   gcc -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -g -O2 -fstack-protector-strong -Wformat -Werror=format-security  -O2
MPICH CXX:  g++ -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -g -O2 -fstack-protector-strong -Wformat -Werror=format-security
MPICH F77:  gfortran -g -O2 -fstack-protector-strong -g -O2 -fstack-protector-strong -O2
MPICH FC:   gfortran -g -O2 -fstack-protector-strong -g -O2 -fstack-protector-strong
gsamaras@pythagoras:~$ which mpiexec
/usr/bin/mpiexec
gsamaras@pythagoras:~$ which mpirun
/usr/bin/mpirun

где в geomcomp я получил:

gsamaras@geomcomp:~$ mpichversion
-bash: mpichversion: command not found
gsamaras@geomcomp:~$ which mpiexec
/usr/bin/mpiexec
gsamaras@geomcomp:~$ which mpirun
/usr/bin/mpirun

Я установил MPICH2, как указано в руководстве. Что я должен делать? Я работаю над /mirror на главном узле. Он установлен на подчиненном узле.

1. Этот актуальный вопрос, mpiexec.hydra - как запустить процесс MPI на машинах, где расположение гидры_pmi_proxy отличается?, отличается от моего, но может быть и здесь. 2. Черт возьми, единственная Гидра, которую я знаю, это греческий остров, что я упускаю? :/


person gsamaras    schedule 02.06.2015    source источник
comment
Возможно (вероятно, я думаю), что когда вы используете опцию -n с числом меньше 3, mpiexec использует первые процессоры, доступные из машинного файла, и игнорирует остальные. Таким образом, для -n 1 и -n 2 вы используете только машинный пифагор. Когда вы пытаетесь запустить -n 3, он также пытается использовать geomcomp. Настроен ли geomcomp для использования MPI? Удалите доступ к этой машине и попробуйте mpiexec -n 1 ./mpi_hello (без опции -machinefile). Если это вызывает ошибку, это ваша проблема.   -  person    schedule 03.06.2015
comment
@R_Kapp спасибо за ответ. Да, я тоже сейчас подумал, что geomcomp ничего не запускает (я проверил, получив IP-адрес из кода C). Когда я пытаюсь сделать то, что вы говорите, он говорит, что у меня нет запущенного демона, поэтому (после того, как я прочитал это wiki.lazarus.freepascal.org/MPICH#Test_MPD), я получил это: gsamaras@geomcomp:/mirror$ mpd & [1] 12036 gsamaras@geomcomp:/mirror$ configuration file /home/gsamaras/.mpd.conf not found A file named .mpd.conf file must be present in the user's home...   -  person gsamaras    schedule 03.06.2015
comment
MPD обесценивался по крайней мере для нескольких выпусков. Держись за гидру.   -  person Rob Latham    schedule 03.06.2015
comment
ОК, @RobLatham, я сказал это только потому, что это было сообщение, которое я получил в терминале.   -  person gsamaras    schedule 04.06.2015


Ответы (1)


Я бы сказал, что вы определили подлинный недостаток Гидры: должен быть какой-то способ сообщить ей, что пути на других узлах разные.

Где установлен mpich на пифагоре? Где установлен mpich на геокомп?

В самой простой конфигурации у вас был бы, например, общий домашний каталог, и вы бы установили mpich в ${HOME}/soft/mpich.

Hydra может не запускать «оболочку входа» на удаленной машине. Если вы добавите путь установки MPICH в переменную среды PATH, вам придется сделать это в файле, например .bashrc (или в другом эквиваленте для вашей оболочки).

Чтобы проверить это, попробуйте «ssh geocomp mpichversion», «ssh pythagoras mpichversion» и старую добрую «mpichversion». Это должно рассказать вам кое-что о том, как настроена ваша среда.

В вашем случае ваша среда действительно странная! debian 8 и debian 6, и похоже, что это даже разные версии MPICH. Я думаю, благодаря инициативе ABI, что MPICH-3.1 и новее будут работать с MPICH-3.1, но если у вас есть версия MPICH, которая до -даты преобразования "MPICH2 в MPICH", таких гарантий нет.

И если оставить в стороне ABI, у вас есть MPICH, который ожидает пусковую установку Hydra (версия Debian 8), и MPICH, ожидающий пусковую установку MPD. (версия дебиана 6)

И даже если у вас есть достаточно свежие пакеты, все может работать только в том случае, если у вас одинаковая архитектура на всех машинах. ABI, как указывает Кен, не означает поддержку гетерогенных сред.

удалите пакеты дистрибутива и самостоятельно соберите MPICH на обеих машинах.

person Rob Latham    schedule 03.06.2015
comment
Проверьте мое редактирование, которое должно помочь вам дать ответ! - person gsamaras; 04.06.2015
comment
на самом деле, следующий вопрос живет здесь: 30666741/build-mpich2-from-source/ - person Rob Latham; 10.06.2015
comment
Инициатива совместимости ABI не позволяет смешивать и сопоставлять версии MPICH между процессами. Вы должны убедиться, что используете одну и ту же версию MPICH на всех своих машинах. - person kraffenetti; 01.06.2016
comment
Определенно. Я отредактирую, чтобы быть более ясным. В этой среде есть еще много странного. - person Rob Latham; 01.06.2016