|
|
Basiswissen: MPI und Metacomputing |
Basiswissen: MPI und Metacomputing
Der MPI Standard
MPI
(Message Passing Interface)
ist der Standard für Kommunikation zwischen parallelen Prozessen über Nachrichtenaustausch. Eine MPI-Applikation besteht in der Regel aus mehreren miteinander kommunizierenden Prozessen, die alle zu Beginn der Programmausführung gestartet werden. Alle diese Prozesse zusammen arbeiten gemeinsam an einem Problem und nutzen zum Datenaustausch Nachrichten, die explizit von einem zum anderen Prozess geschickt werden. Der große Vorteil dieses Prinzips ist es, dass der Nachrichtenaustausch auch über Rechnergrenzen hinweg funktioniert.
Parallele MPI Programme sind somit sowohl auf Clustern als auch auf speziellen Parallelrechnern ausführbar.
Die MP-MPICH Bibliothek
Die am Lehrstuhl für Betriebssysteme entwickelte Softwarebibliothek
MP-MPICH
ist eine Implementierung des MPI-Standards, die sowohl verschiedene Betriebssysteme (Windows, Linux und Solaris), als auch verschiedene Netzwerktypen zum Nachrichtenaustausch unterstützt.
MP-MPICH besitzt dazu ein Kommunikationsmodul für Windows NT/2000/XP
(NT-MPICH),
welches sowohl den Nachrichtenaustausch über Sockets, als auch über gemeinsame Speicherbereiche eines SMP-Systems gestattet.
Gleichzeitig ist MP-MPICH ein Überprojekt von
SCI-MPICH,
das mit einem Kommunikationsmodul für das sehr schnelle SCI-Netzwerk aufwarten kann.
Mit SCI-MPICH kann eine Nachrichtenlatenz von weniger als 5 us, und eine Spitzenbandbreite von mehr als 230 MB/s erreicht werden.
Metacomputing und MetaMPICH
Ein Unterprojekt von MP-MPICH ist
MetaMPICH,
welches es ermöglicht, mehrere Cluster (oder auch dedizierte Parallelrechner) über ein zusätzliches Verbindungsnetzwerk, z.B. mit ATM auch über große Distanzen hinweg, zu koppeln.
Den so entstehenden Rechnerverbund bezeichnet man dann als Metacomputer.
Die mit MetaMPICH gekoppelten Cluster erscheinen aus Sicht eines Anwendungsprogramms als ein großer Parallelrechner.
Die parallelen Prozesse kommunizieren dabei innerhalb ihres Clusters über die speziellen Cluster-Netzwerke (z.B. SCI, Myrinet oder InfiniBand), während Nachrichten an Prozesse in entfernten Clustern über sog. Router-Prozesse abgewickelt werden können. Diese Router-Prozesse kommunizieren untereinander nach einem eigenen, höherschichtigen Protokoll, welches selber wieder z.B. auf TCP/IP aufsetzt.
|
|
|