next up previous contents
Nächste Seite: Parallel Virtual Machine Aufwärts: Parallelisierung Vorherige Seite: Parallelisierungsparadigma   Inhalt


Message-Passing

Das Programmiermodell Message-Passing wurde speziell für MIMD-Rechner mit verteiltem Speicher entworfen. Die Grundidee dieses Modells liegt in verschiedenen, gleichzeitig ablaufenden Prozessen, die einen voneinander unabhängigen Speicher besitzen. Ein direkter Zugriff auf die Daten eines anderen Prozesses ist nicht möglich [Thole 1996]. Daher ist es notwendig Nachrichten auszutauschen. Diese Nachrichten können zum einen aus Signalen zur Steuerung des Ablaufes und zum anderen aus Daten, die von einem Prozess zu einem anderen gelangen müssen, bestehen. Die Prozesse, die parallel ablaufen, können komplett verschieden sein.

Die wichtigsten Vertreter des Message-Passing sind das Message-Passing-Interface (MPI) und die Parallel Virtual Machine (PVM). Die Parallelisierung eines Programmes geschieht durch Aufteilen des Prozesse in Teilprozesse. Diese Teilprozesse müssen in der Regel miteinander kommunizieren, wofür Aufrufe von Kommunikationsroutinen in das Programm eingefügt werden müssen. Zusätzlich ist eine Verwaltung der Prozesse, die einen gewissen Overhead erzeugen, notwendig. Für Cluster aus Workstations oder Personal Computern stellt das Message-Passing das optimale Programmiermodell dar.

Eine Message-Passing Bibliothek muss dem Programmierer eine Reihe von Funktionalitäten zur Verfügung stellen[Thole 1996]:

Starten:
Die parallel ablaufenden Prozesse müssen gestartet werden. Dies kann entweder statisch oder dynamisch erfolgen.
Gruppierung:
Für eine Reihe von Lösungsansätzen ist es notwendig, Prozessoren zu gruppieren. Hierfür sollte eine Message-Passing-Programmierbibliothek Funktionalitäten liefern.
Benennen:
Es ist notwendig, dass jeder Prozess einen Namen für jeden der anderen Prozesse ermitteln kann. Dieser Name kann z.B. eine Nummer sein und ist unter anderem zur Kommunikation notwendig.
Kommunikation:
Es müssen Funktionalitäten zum Austausch von Daten und Signalen vorhanden sein. Die wichtigsten Kommunikationsarten sind [Lämmer 1997]:
Beenden:
Beim Beenden eines Prozesses müssen das System und die anderen Prozessoren erkennen, dass der eine Prozess beendet ist.



Unterabschnitte
next up previous contents
Nächste Seite: Parallel Virtual Machine Aufwärts: Parallelisierung Vorherige Seite: Parallelisierungsparadigma   Inhalt