ubuntuusers.de

MPICH, LAM/MPI unter Ubuntu

Status: Ungelöst | Ubuntu-Version: Ubuntu 7.10 (Gutsy Gibbon)
Antworten |

GoogleWoogle

Anmeldungsdatum:
22. Oktober 2007

Beiträge: Zähle...

Hallo,

ich habe einige Probleme mir Parallelisierung unter Ubuntu und hoffe daher, dass ich einige Lösungen bekommen kann. Zur Info: Ich benutze Ubuntu 7.10 32bit mit 2 x Opteron250 Prozessoren. Hier möchte ich eine Simulationssoftware (ANUGA), die in C und in Python geschrieben ist, auf beiden Prozessoren zum laufen bekommen. Die Software an sich läuft auf einem Prozessor inzwischen nahezu problemlos.
Für die Parallelisierung wird pypar http://datamining.anu.edu.au/~ole/pypar/ verwendet, dass speziell für diese Software geschrieben wurde. Voraussetzung für pypar ist MPI (MPICH oder LAM/MPI). Und genau hier liegt das Problem: ich bekomme weder MPICH, noch LAM vernünftig zum laufen. Bin noch ein ziemlicher Linux-Neuling, was die Sache nicht gerade leichter macht 😕 .

Beim Testen von pypar bekomme ich eine Meldung "Pypar initialised MPI OK with 1 processors. I am processor 0 of 1 on node xyz". Heißt "1" Prozessor nun, dass nur einer gefunden wurde, oder wird hier auch bei 0 angefangen zu zählen? Auch jeden Fall scheint MPI ja irgendwie zu funktionieren. Bei Installation von LAM/MPI mit den Paketen "lampython" und "lam-runtime" sowie "libmpich1.0.dev" und Start von LAM über "lamboot" bekomme ich bei Aufruf einer Testdatei über

"mpirun -np 2 demo.py" die Fehlermeldung
"bash: mpirun: command not found".

Wenn ich dann über apt-get install das Paket "lam-runtime" (wird mir u.a. als Installationsoption angezeigt) erneut installiere und den Befehl erneut ausführe, kommt dieselbe Fehlermeldung. Installiere ich z.B. das Paket "mpich-bin", so kommt eine andere Fehlermeldung:

"Program demo.py either does not exist, ist not executable, or is an erroneous argument to mpirun".

Ich hatte Ubuntu heute morgen schon so weit, dass er mir mit LAM/MPI nur eine Fehlermeldung ausgespuckt hat, wie "access denied on node (0)", oder sowas in der Art. Dann hab ich aber weiter getestet, Pekete neu installiert, und nun komme ich nicht einmal mehr dort hin.

Ich hoffe, jemand kann mit hierbei etwas weiter helfen. Vielen Dank schon mal im Voraus,

Gruß Arne

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17608

Wohnort: Berlin

MPICH, LAM/MPI sind zwar fremdes Terrain für mich, aber "command not found" kenne ich.

Dann macht man sich auf die Suche, ob mpirun an einer Stelle im Pfad ist, wo es gefunden werden müßte:

whereis mpirun
locate mpirun


und wenn das nicht fruchtet:

 for p in $(echo $PATH | sed 's/:/ /g'); do echo find $p -name mpirun; done


Womöglich findest Du mpirun, und es ist nicht ausführbar.
Wenn Du es also in /usr/local/bin z.B. findest, dann machst Du

ls -l /usr/local/bin/mpirun

um zu sehen, ob es executable gesetzt ist.
Ähnlich bei demo.py:
"Program demo.py either does not exist, ist not executable, or is an erroneous argument to mpirun".
locate, whereis, find, ls -l

GoogleWoogle

(Themenstarter)

Anmeldungsdatum:
22. Oktober 2007

Beiträge: 6

Hallo,

mpirun.lam wird im Verzeichnis /usr/bin/ gefunden. Ich muss nun wohl erstmal herausfinden, ob dies der richtige Pfad ist.

ls -l /usr/bin/mpirun.lam

liefert mir

-rwxr -xr -x l root root 28096 2006-11-09 08:02 /usr/bin/mpirun.lam

Was kann ich daraus schließen?
Was mich nach wie vor wundert ist, dass ich nach Installieren von "lam-runtime", in dem ja mpirun enthalten ist, immer noch die Fehlermeldung bekomme, dass es nicht gefunden wird.

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4681

Wohnort: Berlin

Offenbar heisst das Programm nicht mpirun sondern mpirun.lam.

GoogleWoogle

(Themenstarter)

Anmeldungsdatum:
22. Oktober 2007

Beiträge: 6

@ 'BlackJack:

Du hast Recht, der Befehl muss tatsächlich

mpirun.lam -np 2 python demo.py


lauten. Nun ergibt sich zumindest eine neue (Fehler)meldung:

"I am proc 0 of 1 on node ubuntu-opteron250. Demo must run on at least 2 processors to continue."
...
"It seem that [...] one of the processes that was started with mpirun did not invoke MPI_INIT before quitting ..."

Daher nochmal meine Frage: Heißt "Pypar initialised MPI OK with 1 processors. I am processor 0 of 1 on node xyz" nun dass ein Prozessor gefunden wurde, oder wird bei 0 angefangen zu zählen? Woran kann es liegen, dass scheinbar nur ein Prozessor angesprochen wird?

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17608

Wohnort: Berlin

Auf der von Dir verlinkten Seite steht:

import pypar # The Python-MPI interface

numproc = pypar.size() # Number of processes as specified by mpirun
myid = pypar.rank() # Id of of this process (myid in [0, numproc-1])
node = pypar.get_processor_name() # Host name on which current process is running

print 'I am proc %d of %d on node %s' %(myid, numproc, node)

, d.h. der Index zählt von 0 (I am proc %d), aber die Anzahl wird normal dargestellt, und nicht der Index des letzten (numproc-1) - es wurde also nur einer gefunden.

Bist Du nach der README vorgegangen?
Gab es Meldungen beim Ausführen von

 python setup.py install

?
Welche?

Hast Du diesen Absatz beachtet:

INSTALLATION NOTES (If all else fails)

Most MPI implementations provide a script or an executable called
"mpicc" which compiles C programs using MPI and does
not require any explicitly mentioned libraries.
If such a script exists, but with a different name, change
the name in the beginning of compile.py. If no such script exists, put
the name of your C compiler in that place and add all required linking
options yourself.

(...)

On Linux (using LAM-MPI) it is

mpicc -c mpi.c -I/opt/Python-2.1/include/python2.1/
mpicc -shared mpi.o -o mpi.so

Start processors using
lamboot -v lamhosts
The script install.py (which is using compile.py) is a non-distutils
way of compiling the extension.

GoogleWoogle

(Themenstarter)

Anmeldungsdatum:
22. Oktober 2007

Beiträge: 6

Ich bin eigentlich nach der README vorgegangen. Beim Ausführen von

python setup.py install


gab es jede Menge Meldungen, es sah jedoch keine nach einem Fehler aus. Da ich auf dem Rechner gerade eine Simulation (auf einem Prozessor) laufen lasse, kann ich momentan die Installation leider nicht erneut durchführen, dass ist mir im laufenden Betrieb etwas zu riskant. Die Simulation sollte in acht Stunden durchgelaufen sein, dann werde ich die Installation nochmals durchführen und die Meldungen hier posten.

Gruß Arne

Antworten |