Ошибка MPICH2 gethostbyname
Я не понимаю сообщение об ошибке. Я пытаюсь сделать это, чтобы запустить приложение MPICH2 после того, как я установил mpich2 версии 1.4 или 1.5 в /opt/mpich2
(обе версии завершились с той же ошибкой). Мое приложение MPI было скомпилировано с помощью 1.3, но я могу запустить его с помощью mpi 1.4 на другой рабочей станции. Я тестирую его на Ubuntu 12.04.
Fatal error in PMPI_Init_thread: Other MPI error, error stack:
MPIR_Init_thread(467)..............:
MPID_Init(177).....................: channel initialization failed
MPIDI_CH3_Init(70).................:
MPID_nem_init(319).................:
MPID_nem_tcp_init(171).............:
MPID_nem_tcp_get_business_card(418):
MPID_nem_tcp_init(377).............: gethostbyname failed, localhost (errno 3)
Ответы
Ответ 1
Решение для macOS
Я наткнулся на эту проблему на macOS 10.12.1.
Решение состоит в том, чтобы добавить 127.0.0.1 computername.local
в /etc/hosts
. Ваш файл будет выглядеть примерно так:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
127.0.0.1 computername.local
255.255.255.255 broadcasthost
::1 localhost
Вы можете изменить/проверить имя своего компьютера, если вы перейдете в Системные настройки > Совместное использование > Имя компьютера.
Ответ 2
Что сработало для меня, было следующее:
Убедитесь, что ваше имя хоста одно и то же для 1 и 2 ниже:
- имя узла терминала
- "/etc/hosts" имя хоста
Итак, если вы введете cat /etc/hosts
в терминал, это должно выглядеть так:
// 127.0.0.1 my_hostname
Мое имя было для меня одинаковым для 1 и 2. Как только я изменил их, чтобы соответствовать, моя программа mpi выполнит.
Чтобы изменить имя хоста вашего терминала, выполните следующие действия:
sudo scutil --set HostName my_new_host_name
Чтобы изменить имя хоста /etc/hosts, выполните следующие действия:
sudo nano /etc/hosts
а затем добавьте строку
127.0.0.1 my_new_hostname
Ответ 3
Эта ошибка указывает на то, что существует проблема с решением localhost. Проверьте файл /etc/hosts, убедитесь, что локальный хост правильно указан здесь, он должен указывать на 127.0.0.1. Попробуйте использовать ssh для подключения к localhost, убедитесь, что это работает.
Ответ 4
Будучи вопросом разным, ответ, вероятно, тот же, что я дал недавно для OpenMPI:
Функция gethostname() отсутствует в openMPI
Портативное решение MPI должно использовать MPI_Get_processor_name()
Ответ 5
Возможно, ваш /dev/shm заполнен, попробуйте его почистить.
Ответ 6
Удаление 127.0.0.1 localhost
решило эту проблему.