Невозможно выполнить MPICH2 на нескольких машинах в Ubuntu 12.04 (проблема HYDU_sock_connect)

Я сталкиваюсь с трудностями при выполнении программы MPI на двух машинах. ОС Ubuntu 12.04. И реализация MPI является MPICH2

SSH работает нормально:

  root@ubuntu:/home# ssh 192.168.1.9
root@gpuguy's password: 
Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.8.0-29-generic i686)

 * Documentation:  https://help.ubuntu.com/

131 packages can be updated.
67 updates are security updates.

Last login: Thu Oct 24 17:36:25 2013 from ubuntu.local
root@gpuguy:~# 

Но когда я запускаю свои программы MPI, это терпит неудачу:

root@ubuntu:/home# mpiexec -f hosts.cfg -n 4 hello
root@192.168.1.9's password:
[proxy:0:0@gpuguy] HYDU_sock_connect (./utils/sock/sock.c:171): unable to get host address for ubuntu (1)
[proxy:0:0@gpuguy] main (./pm/pmiserv/pmip.c:209): unable to connect to server ubuntu at port 42104 (check for firewalls!)

Я уже отключил брандмауэр на обеих машинах, поэтому я могу успешно использовать ssh. Но как решить эту проблему?

Мой код MPI успешно работает на одной машине.

2 ответа

Решение

Чтобы MPICH (или любая реализация MPI) работала, вам нужно настроить SSH без пароля. Я должен также упомянуть, что вам действительно не нужно входить в систему как root, чтобы сделать эту работу. Как правило, это очень плохая идея - постоянно входить в систему как root.

В файле / etc / hosts добавьте IP-адрес каждого сервера и его имя хоста. Вы должны сделать это для всех серверов.

Например:

      10.10.0.5    server1
10.10.0.6    server2
10.10.0.7    server3

Просто проверьте файл / etc / hosts , не используйте табуляцию (\t) вместо пробела для разделения IP-адреса и имени хоста .

Это не правильно:

      10.10.0.5 \t server1

Это правда:

      10.10.0.5    server1

Будьте осторожны, не удаляйте и не изменяйте существующие строки в файле / etc / hosts . добавлять новые строки только в конец файла.

Кроме того, вам не нужно отключать брандмауэр, чтобы решить эту проблему.

Другие вопросы по тегам