2014-04-16 4 views
16

Ich verstehe die Fehlermeldung nicht. Ich versuche zu tun ist, eine MPICH2-Anwendung zu starten, nachdem ich mpich2 Version 1.4 oder 1.5 auf /opt/mpich2 installiert habe (beide Versionen sind mit demselben Fehler fehlgeschlagen). Meine MPI-Anwendung wurde mit 1.3 kompiliert, aber ich kann sie mit mpi 1.4 auf einer anderen Workstation ausführen. Ich teste es auf Ubuntu 12.04.MPICH2 gethostbyname fehlgeschlagen

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) 

Antwort

2

Als die Frage anders, ist die Antwort wahrscheinlich das gleiche ich Zeit vor für OpenMPI gab: gethostname() function missing in openMPI

Die MPI tragbare Lösung ist MPI_Get_processor_name()

+0

Danke für die Antwort. Ich habe die erste Zeile der Fehlermeldung verpasst. – biocyberman

+0

@biocyberman möchten Sie vielleicht die Antwort dann akzeptieren. –

5

Dieser Fehler gibt zu verwenden, dass es ein Problem gibt Auflösen von localhost. Überprüfen Sie Ihre/etc/hosts-Datei, stellen Sie sicher, dass Sie localhost korrekt hier definiert haben, sollte es auf 127.0.0.1 zeigen. Versuchen Sie es mit ssh, um sich mit localhost zu verbinden, stellen Sie sicher, dass das auch funktioniert.

+0

ssh zu localhost funktioniert. Ich werde versuchen, nach anderen Dingen zu suchen und später zurückzukommen. – biocyberman

+5

Hier ist, was ich tun musste, um dies zu lösen: setze einen korrekten Hostnamen über 'sudo scutil --set HostName' und füge dann den neuen Hostnamen (sprich my_computer.local) zu/etc/hosts wie' 127.0.0.1 my_computer.local hinzu '.Außerdem müssen Sie den SSH-Zugang in den "Sharing" -Einstellungen aktivieren und Ihren öffentlichen Schlüssel zur authorized_keys-Datei hinzufügen ('cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys'). – herrherr

10

Was für mich gearbeitet wurde wie folgt vor:

Ihren Hostnamen unten für 1 und 2 Stellen Sie sicher, das gleiche ist:

  1. Terminal Hostnamen
  2. "/ etc/hosts" Hostname
So

wenn Sie cat /etc/hosts in Terminal eingeben sollte wie folgt aussehen:

// 127.0.0.1  my_hostname 

Mein Hostname war nicht der gleiche für 1 und 2 für mich. Sobald ich sie änderte, um zu entsprechen, würde mein mpi Programm ausführen.

Um Ihr Terminal Hostnamen geben Sie Folgendes zu ändern: sudo scutil --set HostName my_new_host_name

Um Ihre/etc/hosts Hostnamen geben Sie Folgendes zu ändern: sudo nano /etc/hosts

und fügen Sie dann die Linie

127.0.0.1  my_new_hostname 
+0

Ich stieß auf genau dieses Problem (beachten Sie dies über ein Jahr nach dem ursprünglichen Posting) - und diese Antwort lieferte die Lösung für mich. http://stackoverflow.com/questions/42041706/mpi4py-fatal-error-in-simple-hello-world?noredirect=1#comment71258508_42041706 – aph

10

Lösung für MacOS

Ich stolperte über dieses Problem auf MacOS 10.12.1.

Die Lösung ist 127.0.0.1 computername.local zu /etc/hosts hinzuzufügen. Ihre Datei aussehen wird mehr oder weniger wie folgt aus:

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

Sie können den Namen Ihres Computers ändern/überprüfen, ob Sie gehen zu Systemeinstellungen>Gemeinsame Nutzung>Computername.

Verwandte Themen