Связь MPICH не удалась

У меня есть простая программа MPICH, в которой процессы отправляют и получают сообщения друг от друга в кольцевом порядке.
Я настроил две идентичные виртуальные машины и убедился, что сеть работает нормально. Я протестировал простую программу MPICH на обеих машинах, и она отлично работает. Проблема возникает, когда я пытаюсь установить связь между процессами на разных машинах, как в приведенной выше программе. Я получаю следующую ошибку:

Неустранимая ошибка в MPI_Send: Произошел сбой процесса, стек ошибок:
MPI_Send(171)...............: MPI_Send(buf=0xbfed8c08, count=1, MPI_INT, dest= 1,
тег=1, MPI_COMM_WORLD) не удалось
MPID_nem_tcp_connpoll(1826): ошибка связи с рангом 1: в соединении отказано

  • SSH не имеет пароля и отлично работает с обеих сторон.
  • /etc/hosts настроен правильно.
  • Брандмауэр отключен на обеих машинах.
  • Настроил клиент/сервер NFS и разделил между ними каталог. (согласно это)
  • Пробовал и MPICH, и OpenMPI с Hydra

person atoMerz    schedule 28.01.2013    source источник
comment
Какое кластерное приложение вы используете? Я имел в виду, как вы отправляете задание на несколько узлов?   -  person Satish    schedule 29.01.2013
comment
@Satish Я не уверен, что правильно понял ваш вопрос, но я использую mpiexec -f hosts -n 4 ./myapp, который, я думаю, использует shh под капотом.   -  person atoMerz    schedule 29.01.2013
comment
Убедитесь, что у вас есть ssh без пароля (открытый/закрытый ключ)   -  person Satish    schedule 29.01.2013
comment
Я не очень хорошо разбираюсь в Linux, как мне сделать ssh без пароля?   -  person atoMerz    schedule 29.01.2013
comment
debian-administration.org/articles/152   -  person Satish    schedule 29.01.2013
comment
Дополнительная справка rcsg-gsir.imsb-dsgi. nrc-cnrc.gc.ca/documents/internet/   -  person Satish    schedule 29.01.2013
comment
@Satish Сделал ssh без пароля с обеих сторон. Все еще получаю ту же ошибку.   -  person atoMerz    schedule 29.01.2013
comment
Отключите брандмауэр или SELinux, если он запущен.   -  person Satish    schedule 29.01.2013
comment
Используете ли вы Hydar или какое-либо другое приложение для управления кластером? См.: wiki.mpich.org/mpich /index.php/Использование_the_Hydra_Process_Manager   -  person Satish    schedule 29.01.2013
comment
Вот ваше решение: webappl.blogspot.com /2011/05/   -  person Satish    schedule 29.01.2013
comment
Брандмауэр @Satish отключен, я полагаю, что Hydra используется в моей версии MPICH2 автоматически. (сейчас смотрю по ссылке)   -  person atoMerz    schedule 29.01.2013
comment
Настроил NFS, но все равно получаю ту же ошибку. Чтобы убедиться, что гидра используется, я запускаю программы в mpiexec.hydra вместо mpiexec.   -  person atoMerz    schedule 29.01.2013
comment
Вы пытались запустить режим отладки? Кажется, проблема либо в сети, либо в настройке гидры. Убедитесь, что вы можете подключиться по ssh с обеих машин без ppassword.   -  person Satish    schedule 29.01.2013
comment
@Satish Passwordless SSH отлично работает с обеих сторон, и обе машины могут пинговать друг друга. Хотя я с подозрением отношусь к гидре. Я попытался установить его с помощью sudo apt-get install hydra, но проблема осталась. Как уже было сказано, я даже попробовал mpiexec.hydra, чтобы убедиться, что гидра используется. Как запустить программы MPI в режиме отладки? любые ссылки?   -  person atoMerz    schedule 29.01.2013
comment
Проверьте мой ответ! ниже это работает для меня.   -  person Satish    schedule 29.01.2013


Ответы (1)


Вот что я сделал, и это работает!

Установлен следующий пакет с использованием исходного кода (tarball)

hydra 
openmpi

Создан файл hosts (оба узла)

# cat /home/spatel/mpi/hydra/hosts
node1
node2 

Установить переменную в .bashrc на (оба узла)

echo HYDRA_HOST_FILE=/home/spatel/mpi/hydra/hosts >> ~/.bashrc

Используйте программу HelloWorld MPI для работы на одном узле.

node1# /home/spatel/mpi/hydra/bin/mpiexec -np 1 /home/spatel/mpi/mpi_hello_world
Hello world from processor node1.example.com, rank 0 out of 1 processors

Запуск на нескольких узлах с использованием параметра -machinefile -np — количество процессоров

node1# /home/spatel/mpi/hydra/bin/mpiexec -np 4 -machinefile /home/spatel/mpi/hydra/hosts /home/spatel/mpi/mpi_hello_world
Hello world from processor node1.example.com, rank 0 out of 1 processors
Hello world from processor node2.example.com, rank 0 out of 1 processors
Hello world from processor node1.example.com, rank 0 out of 1 processors
Hello world from processor node2.example.com, rank 0 out of 1 processors
person Satish    schedule 29.01.2013
comment
Я загружаю openmpi и скомпилирую его из исходников. То же самое и с гидрой. Затем использовал mpiexec.hydra -f hosts -n 2 ./a.out для запуска программы. Я получил ту же ошибку :( Спасибо за вашу помощь. Вы уже сделали слишком много. Я предполагаю, что могут быть проблемы с сетью VMWare. - person atoMerz; 31.01.2013
comment
Если вы можете использовать ssh, то я не думаю, что это проблема с сетью, может быть ваш хост-брандмауэр Windows, если у вас есть мостовая сеть, попробуйте NAT - person Satish; 31.01.2013
comment
Пробовал NAT, также пытался отключить мою антивирусную программу Windows. Все еще терпит неудачу. - person atoMerz; 01.02.2013