Die Boost C++ Bibliotheken

Entwicklungs- und Laufzeitumgebung

MPI ist ein Standard, der zahlreiche Funktionen zum Parallel Computing definiert. Damit sind Programme gemeint, die so strukturiert sind, dass sie Aufgaben gleichzeitig ausführen können, weil sie in Laufzeitumgebungen eingesetzt werden, die das gleichzeitige Ausführen von Aufgaben ermöglichen. Derartige Laufzeitumgebungen basieren üblicherweise auf mehreren Prozessoren. Da ein Prozessor Codeanweisungen nur nacheinander ausführen kann, entsteht erst durch den Zusammenschluss mehrerer Prozessoren eine Laufzeitumgebung, die eine parallele Codeausführung ermöglicht. Werden mehrere tausend Prozessoren zusammengeschaltet, erhält man Parallelrechner – Architekturen, wie sie in Supercomputern vorgefunden werden. MPI stammt aus genau diesem Umfeld, weil man nach Wegen suchte, Supercomputer einfacher programmieren zu können.

Wenn Sie MPI verwenden möchten, brauchen Sie eine Implementation des Standards. So definiert MPI zwar zahlreiche Funktionen. Das heißt aber nicht, dass Ihr Betriebssystem diese Funktionen von Haus aus zur Verfügung stellt. So bieten zum Beispiel die Desktop-Versionen von Windows keine MPI-Funktionen an.

Die beiden wichtigsten MPI-Implementationen sind MPICH und Open MPI. MPICH ist eine der ersten MPI-Implementationen und existiert seit Mitte der 90er Jahre. Es handelt sich um eine ausgereifte und portable Implementation, die bis heute gepflegt und aktualisiert wird. Die erste Version von Open MPI wurde 2005 veröffentlicht. Da Open MPI jedoch in Zusammenarbeit zahlreicher Entwickler entsteht, die für frühere MPI-Implementationen verantwortlich zeichnen, gilt Open MPI als neuer aufkommender Standard. Das heißt nicht, dass MPICH abgeschrieben werden darf. Es gibt zahlreiche MPI-Implementationen, die auf MPICH basieren. Microsoft liefert zum Beispiel mit dem Microsoft HPC Pack seine eigene auf MPICH basierende Implementation aus.

MPICH stellt für zahlreiche Betriebssysteme wie Windows, Linux und OS X Installationsdateien zur Verfügung. Wenn Sie eine MPI-Implementation benötigen und sie diese nicht selbst von Quellcode kompilieren möchten, sind die MPICH-Installationsdateien der schnellste Weg, um in MPI einzusteigen.

Die MPICH-Installationsdateien stellen Ihnen die notwendigen Headerdateien und Bibliotheken zur Verfügung, um MPI-Programme entwickeln zu können. Darüberhinaus erhalten Sie die für MPI-Programme notwendige Laufzeitumgebung. Da MPI-Programme Aufgaben parallel auf mehreren Prozessoren ausführen, laufen sie in mehreren Prozessen ab. Ein MPI-Programm wird nicht einmal gestartet, sondern mehrfach. So laufen zeitgleich mehrere Instanzen eines MPI-Programms auf mehreren Prozessoren, die über Funktionen miteinander kommunizieren, die der MPI-Standard definiert.

Ein MPI-Programm können Sie daher nicht wie gewohnt per Doppelklick starten. Sie verwenden ein Hilfsprogramm, das üblicherweise mpiexec heißt. Diesem Hilfsprogramm übergeben Sie Ihr MPI-Programm, das dann in der MPI-Laufzeitumgebung ausgeführt wird. Über zusätzliche Parameter können Sie angeben, wie viele Prozesse für Ihr MPI-Programm gestartet werden sollen und wie sie miteinander kommunizieren sollen – also zum Beispiel über Sockets oder Shared Memory. Da sich die MPI-Laufzeitumgebung um diese Details kümmert, können Sie sich auf die parallele Programmierung konzentrieren.

Wenn Sie sich für die Installationsdateien von MPICH entschieden haben: Beachten Sie, dass MPICH ausschließlich eine 64-Bit-Version zur Verfügung stellt. Sie müssen einen 64-Bit-Compiler verwenden, um MPI-Programme mit MPICH entwickeln zu können. Sämtliche Boost-Bibliotheken einschließlich Boost.MPI müssen ebenfalls als 64-Bit-Version vorliegen.