Revision [7528]
This is an old revision of Mpi made by ToBo on 2009-01-19 00:36:09.
MPI
1. Eigenschaften
- Architektur und Hardware unabhängig
- geeignet für Rechner mit mehreren CPUs und für Cluster mit mehreren Rechnern (auch für Cluster mit Multicorerechnern)
- sichere Datenübertragung
- Entwicklung von parallelen Algorithmen, Anwendungen und Bibliotheken
2. Implementierungen
- MPICH2 ist eine MPI-1- und MPI-2-Implementierung
- OpenMPI ist eine MPI-2-Implementierung eines Konsortiums von Partnern aus der akademischen Einrichtungen, Forschungseinrichtungen und der Industrie.
- LAM/MPI
- mpiJava
MPI ist nicht zu verwechseln mit OpenMP.
Ich entscheide mich für MPICH2.
3. Informationsmaterial
- Spezifikation (MPI-Standard 2.1)
- Übungen für MPI und OpenMP
- Übungen
- Introduction to MPI
- Intermediate MPI
- Debian Clusters for Education and Research
- http://wiki.freepascal.org/MPICH
- MpiInstallation Installation
- MPI mit LAM einrichten
- MpiReferenzBlatt Referenz zum Programmieren mit MPI
- mpiexec man page
- BoostLibMpi Vereinfachte Funktionen in der Boost-Bibliothek für die MPI-Unterstützung
- MpiFehlerbehandlung Fehlerbehandlung
4. Programme bei MPICH2
mpicc compiles and links MPI programs written in C
mpicxx compiles and links MPI programs written in C++
mpiexec runs an MPI program
mpd process mager
mpdallexit shutdown all process magers (mpd)
mpdcleanup removes the Unix socket on local (the default) and remote machines in case the mpd crashed badly and did not remove it
mpdtrace Llsts hostname of each of the mpds in the ring
mpdringtest measures the time a single message going around the ring of mpds <num> times (default once): mpdringtest 100
4.1MPD-Ring auf mehreren Rechnern einrichten
- Die Datei /etc/hosts auf allen Rechner anpassen oder mit DnsServer DNS-Server arbeiten. Aufpassen mit localhost! Siehe dazu unten Fehlerbehandlung.
- Einen extra Benutzer auf allen Maschinen für die Arbeit mit MPI einrichten. Bei der Arbeit mit MPI muss man davon ausgehen, dass sich ei Eindringling ohne weitere Vorkehrungen von jedem beliebigen System auf alle anderen Systeme Zugang verschaffen kann.
- Am besten mittels NfsServer NFS einen User-Account auf allen Rechnern einrichten, so sind alle benutzerspezifischen Einstellungen und die Parallelprogramme auf allen Rechner gleich vorhanden.
- Etwas bequemer geht es beim Start des mpd, wenn die Passworteingaben wegfallen. Das kann mittels LinuxSshPublicKeyAuth Public-Key-Authentifizierung erreicht werden.
- MpiMpdRing MPD-Ring mit bootmpd starten.
mehr dazu unter MpiMpdRing MPD-Ring
Auf diese Weise kann man MPI-Programme mit mpiexec auf einem beliebigen Rechner ausführen.
5. MPI-Programme
Eigene Beispiele
- MpiBeispiel01 Hello MPI! gut zum Testen
- MpiBeispielRing Nachricht in einem Ring weiterleiten (ring.c)
- MpiBeispielCpi Berechnung von PI (cpi.c)
- MpiBeispielBalancing Load Balancing bei ungleich leistungsstarken Rechnern nach dem MasterWorkerSchema Master-Worker-Schema
- MpiExerciseMpmdQt MPMD mit Qt ist ein Beispiel, wie MPI im Prinzip zusamen mir Qt als grafische Oberfläche genutzt werden kann.
Beispiele aus MPICH2
- shared/examples_graphics/cpi_anim
- shared/examples_graphics/cxgraphics
CategoryStudiumSE
Siehe auch • • • • •