2014-04-16 3 views
16

Je ne comprends pas le message d'erreur. Je suis en train de faire est d'exécuter une application MPICH2 après avoir installé mpich2 version 1.4 ou 1.5 à /opt/mpich2 (les deux versions ont échoué avec la même erreur). Mon application MPI a été compilée avec 1.3 mais je suis capable de l'exécuter avec mpi 1.4 sur un autre poste de travail. Je le test sur Ubuntu 12.04.échec de gethostbyname MPICH2

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) 

Répondre

2

Étant la question différente, la réponse est probablement le même que j'ai donné il y a du temps pour OpenMPI: gethostname() function missing in openMPI

La solution portable MPI est d'utiliser MPI_Get_processor_name()

+0

Merci pour la réponse. J'ai raté la première ligne du message d'erreur. – biocyberman

+0

@biocyberman vous voudrez peut-être accepter la réponse alors. –

5

Cette erreur indique qu'il ya un problème résoudre localhost. Vérifiez votre fichier/etc/hosts, assurez-vous que localhost est correctement défini ici, il devrait pointer vers 127.0.0.1. Essayez d'utiliser ssh pour vous connecter à localhost, assurez-vous que cela fonctionne également.

+0

ssh à localhost fonctionne. Je vais essayer de chercher d'autres choses et revenir plus tard. – biocyberman

+5

Voici ce que j'ai dû faire pour résoudre ceci: définir un nom d'hôte correct via 'sudo scutil --set HostName', puis ajouter le nouveau nom d'hôte (par exemple my_computer.local) à/etc/hosts comme' 127.0.0.1 my_computer.local '.Vous devez également activer l'accès SSH dans les paramètres "Partage" et ajouter votre clé publique au fichier authorized_keys ('cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys). – herrherr

10

Ce qui a fonctionné pour moi était la suivante:

Assurez-vous que votre nom d'hôte est le même pour 1 et 2 ci-dessous:

  1. nom d'hôte borne
  2. "/ etc/hosts" nom d'hôte

Donc, si vous tapez cat /etc/hosts dans le terminal, il devrait ressembler à:

// 127.0.0.1  my_hostname 

Mon nom d'hôte n'était pas le même pour 1 et 2 pour moi. Une fois que je les ai changés pour correspondre alors mon programme mpi s'exécuterait.

Pour changer le type de votre nom d'hôte terminal suivantes: sudo scutil --set HostName my_new_host_name

Pour changer votre/etc/hosts nom d'hôte tapez: sudo nano /etc/hosts

puis ajoutez la ligne

127.0.0.1  my_new_hostname 
+0

Je suis tombé sur exactement le même problème (notez ceci plus d'un an après l'affichage original) - et cette réponse a fourni la solution pour moi. http://stackoverflow.com/questions/42041706/mpi4py-fatal-error-in-simple-hello-world?noredirect=1#comment71258508_42041706 – aph

10

Solution pour macOS

Je suis tombé sur ce problème sur macOS 10.12.1. La solution consiste à ajouter 127.0.0.1 computername.local à /etc/hosts. Votre dossier sera plus ou moins regarder comme ceci:

## 
# 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 

Vous pouvez modifier/vérifier le nom de votre ordinateur si vous allez à Préférences Système> Partage >Nom de l'ordinateur.

Questions connexes