OpenMPI: Einfache 2-Knoten-Setup
Ich habe Probleme beim ausführen eines OpenMPI-Programm mit nur zwei Knoten (der Knoten ist die gleiche Maschine, die ausführt, die mpiexec Befehl und der andere Knoten ist eine separate Maschine).
Ich rufe die Maschine ausgeführt wird mpiexec, master, und der andere Knoten slave.
Auf beiden master und slave, ich habe installiert OpemMPI in meinem home-Verzeichnis unter ~/mpi
Habe ich eine Datei namens ~/machines.txt auf master.
Idealerweise ~/machines.txt sollte enthalten:
master
slave
Jedoch, wenn ich das folgende auf master:
mpiexec -n 2 --hostfile ~/machines.txt hostname
AUSGABE, bekomme ich die folgende Fehlermeldung:
bash: orted: Befehl nicht gefunden
Aber wenn ~/maschines.txt enthält nur den Namen des Knotens, zu dem der Befehl ausgeführt wird, funktioniert es.
~/machines.txt:
master
Befehl:
mpiexec -n 2 --hostfile ~/machines.txt hostname
AUSGABE:
master
master
Habe ich versucht mit dem gleichen Befehl auf slave, und verändert die machines.txt Datei enthält nur slave, und es funktionierte auch. Ich habe dafür gesorgt, dass meine .bashrc - Datei enthält die richtigen Pfade für OpenMPI.
Was mache ich falsch? Kurz gesagt, es ist nur ein problem wenn ich versuche zum ausführen eines Programms auf einem entfernten Rechner, aber ich kann laufen mpiexec einwandfrei auf dem Rechner, der den Befehl ausführt. Das macht mich glauben, dass es ist nicht ein Pfad-Problem. Bin ich fehlt ein Schritt in der Verbindung von beiden Maschinen? Ich habe ohne Passwort ssh-login-Funktion vom master zum slave.
~/mpi
bin, dann bin ich zu erraten, die Sie Hinzugefügt haben ~/mpi
zu Ihrem PATH
innen .bashrc
oder so etwas. Gehen Sie nicht davon aus, dass .bashrc
geladen ist auf jeder Maschine, auf der MPI ausgeführt wird.Ja, fügte ich bin zu PATH und lib LD_LIBRARY_PATH für beide Maschinen.
InformationsquelleAutor Bryan | 2014-04-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Fehlermeldung bedeutet, dass Sie entweder keine Open MPI installiert auf dem remote-Computer, oder Sie nicht haben, Ihr PFAD richtig eingestellt auf der remote-Maschine für nicht-interaktive logins (d.h., solche, die es nicht finden können, die installation von Open MPI auf der remote-Maschine). "orted" ist einer der Helfer ausführbare Dateien, die Open-MPI verwendet zum starten von Prozessen auf entfernten Knoten -- also, wenn "orted" wurde nicht gefunden dann hat es nicht einmal bis zu dem Punkt versuchen, zu starten "hostname" auf dem remote-Knoten.
Beachten Sie, dass es möglicherweise einen Unterschied zwischen interaktiven und nicht-interaktiven logins in Ihre shell-startup-Dateien (z.B., in Ihrem .bashrc).
Beachten Sie auch, dass es wesentlich einfacher ist Open MPI installiert in den gleichen Pfad auf allen Knoten -- so, das Präfix oben beschriebenen Methode automatisch den richtigen WEG und LD_LIBRARY_PATH beim ausführen auf dem remote-Knoten, und Sie nicht haben, um dreck mit Ihrem shell-startup-Dateien.
Beachten Sie, dass es eine Reihe von FAQ-Artikel über diese Art von Themen auf das wichtigste Open MPI Website.
Bist du dir 100% sicher sein, dass Ihre $HOME/.bashrc ausgeführt wird, wenn Sie die Ausführung nicht-interaktiver ssh-Befehle? E. g., "ssh-master uptime" und "ssh-slave-uptime"? Sie möchten echo-Anweisungen in Ihre $HOME/.bashrc ist zu überprüfen.
Ja .bashrc scheint ausgeführt zu werden, weil ich echo "Willkommen" an den Anfang der Datei, und jetzt heißt es "Willkommen bash: orted: Befehl nicht gefunden", jetzt aber.
Allerdings, wenn ich echo "Willkommen" an der Unterseite des .bashrc-Datei, es muss nicht die Ausgabe "Willkommen". hmmm...
Ich zog alle meine "exportieren"s an die Spitze meiner .bashrc-Dateien. Jetzt gibt es keine 'orted' Problem. Jetzt ist es nur nicht die Ausgabe überhaupt nichts.
InformationsquelleAutor Jeff Squyres
Entweder explizit gesetzt, wird die absolute OpenMPI Präfix mit der
--prefix
option:oder rufen Sie
mpiexec
mit dem absoluten Pfad:Letztere option wird das Präfix automatisch. Das Präfix wird dann verwendet, um
PATH
undLD_LIBRARY_PATH
auf den remote-Maschinen.InformationsquelleAutor Hristo Iliev
versuchen die Datei Bearbeiten
/etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/hadoop/openmpi_install/bin"
LD_LIBRARY_PATH=/home/hadoop/openmpi_install/lib
InformationsquelleAutor user5801404