=====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 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}}