Я пытаюсь настроить кластер 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. Черт возьми, единственная Гидра, которую я знаю, это греческий остров, что я упускаю? :/
-n
с числом меньше 3,mpiexec
использует первые процессоры, доступные из машинного файла, и игнорирует остальные. Таким образом, для-n 1
и-n 2
вы используете только машинный пифагор. Когда вы пытаетесь запустить-n 3
, он также пытается использовать geomcomp. Настроен ли geomcomp для использования MPI? Удалите доступ к этой машине и попробуйтеmpiexec -n 1 ./mpi_hello
(без опции-machinefile
). Если это вызывает ошибку, это ваша проблема. - person   schedule 03.06.2015gsamaras@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