Wiki source for Mpi


Show raw source

=====MPI=====

==a==Eigenschaften==a==

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


==a==Implementierungen==a==

~-[[http://www.mcs.anl.gov/research/projects/mpich2/ MPICH2]] ist eine MPI-1- und MPI-2-Implementierung
~-[[http://www.open-mpi.org/ OpenMPI]] ist eine MPI-2-Implementierung eines Konsortiums von Partnern aus der akademischen Einrichtungen, Forschungseinrichtungen und der Industrie.
~-[[http://www.lam-mpi.org/about/overview/ LAM/MPI]]
~-[[http://www.hpjava.org/mpiJava.html mpiJava]]
~~-[[http://www.rz.rwth-aachen.de/global/show_document.asp?id=aaaaaaaaaabftzu Programmieren mit MPI und Java]]
~~-[[http://users.cs.cf.ac.uk/David.W.Walker/CM0323/code.html Beispiele]]
~~-[[http://www.lrz-muenchen.de/services/compute/linux-cluster/cpjava/mpijava.html mpiJava: MPI für Java]]

MPI ist nicht zu verwechseln mit OpenMP.

Ich entscheide mich für MPICH2.


==a==Erforderlich==a==

~-[[MpiInstallation Installation]]
~-[[MpiFehlerbehandlung Fehlerbehandlung]]
~-[[MpiMpdRing MPD]] einrichten
~-[[MpiReferenzBlatt Referenz zum Programmieren]] mit MPI
~-[[MpiCompileAndDebug Kompilieren und Debuggen]]
~-[[http://www.mpi-forum.org/docs/ Spezifikation]] (MPI-Standard 2.1)
~-[[http://phase.hpcc.jp/mirrors/mpi/mpich2/downloads/mpich2-doc-user.pdf MPICH2-Benutzerdokumentation]]


==a==Zusätzliches Material==a==

~-[[http://ci-tutor.ncsa.uiuc.edu/login.php Übungen]] - Introduction to MPI und OpenMP
~-[[http://www.mcs.anl.gov/research/projects/mpich2/ MPICH2-Homepage]]
~-[[http://debianclusters.cs.uni.edu/index.php/MPICH:_Pick_Your_Paradigm Debian Clusters for Education and Research]]
~-http://wiki.freepascal.org/MPICH
~-[[http://www.inf.fu-berlin.de/lehre/WS01/VS/Talks/lamMpi.pdf MPI mit LAM]] einrichten
~-[[http://linux.die.net/man/1/mpiexec mpiexec]] man page
~-[[BoostLibMpi Vereinfachte Funktionen in der Boost-Bibliothek für die MPI-Unterstützung]]


==a==Programme bei MPICH2==a==

**mpicc** compiles and links MPI programs written in C
**mpicxx** compiles and links MPI programs written in C++
**mpiexec** runs an MPI program (damit startet man die Programme)
**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


==a==MPI-Programme==a==

Voraussetzung: [[MpiMpdRing MPD-Ring]] ist eingerichtet.

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.
~- [[MpiExerciseMandel Mandelbrot]] von [[http://de.wikipedia.org/wiki/Argonne_National_Laboratory Argonne National Laboratory]]

Beispiele aus MPICH2
~- shared/examples_graphics/cpi_anim
~- shared/examples_graphics/cxgraphics


----
CategoryStudiumSE
Siehe auch {{backlinks}}
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki