next up previous contents
Nächste Seite: Programmierung: Aufwärts: Message-Passing Vorherige Seite: Message-Passing   Inhalt


Parallel Virtual Machine

PVM [*] ermöglicht es, verschiedene, vernetzte UNIX-Rechner zu einem virtuellen Parallelrechner zu verschalten[Geist u. a. 1994].

Die Entwicklung von PVM begann im Sommer 1989 am Oak Ridge National Laboratory. Version 1.0 wurde nur intern im Institut verwendet. Version 2.0 wurde in Zusammenarbeit mit dem Institute Emory University, der University of Tennessee, der Carnegie Mellon University und dem Pittsburgh Supercomputer Center entwickelt und im März 1991 veröffentlicht. Eine komplette Neuentwicklung mit einer Reihe von Änderungen kam mit der Version 3.0 im Februar 1993. Die aktuelle Version 3.4.3 wird weltweit eingesetzt und ist für eine große Anzahl verschiedener Rechner verfügbar.

Das Softwaresystem PVM in der Version 3 erlaubt es, ein Netzwerk von heterogenen UNIX-Computern wie einen einzigen MIMD-Rechner mit verteiltem Speicher zu verwenden. Zur Kommunikation der einzelnen Rechner untereinander dient das LAN[*]oder WAN[*]. PVM nimmt dem Benutzer dabei die explizite Netzwerkprogrammierung und die Datenkonvertierung zwischen verschiedenen Architekturen ab. Die eigentliche Parallelisierung des Algorithmus muss vom Benutzer in C/C++, Fortran oder Java selbst übernommen werden. Zusätzlich ermöglicht PVM eine dynamische Konfiguration der virtuellen Maschine während der Laufzeit sowie die Programmierung dynamischer Prozessgruppen.

PVM erlaubt die gleichzeitige Verwendung der verschiedensten Rechner. Diese Heterogenität erstreckt sich auf folgende Eigenschaften:

Hardwarehersteller:
Die verwendeten Rechner können unterschiedliche Hersteller haben und verschiedene Architekturen aufweisen. Zum einen werden Rechner wie Workstations oder Personal Computer unterstützt, zum anderen ist PVM für Parallelrechner wie Intel ASCI Red oder Cray T3E erhältlich.
Betriebssystem:
Das verwendete Betriebssystem muss ein UNIX-System sein. Die gleichzeitige Versendung verschiedener UNIX-Systeme auf den verschiedenen Rechnern, wie Solaris, AIX, Linux usw., ist erlaubt.
Datenformate:
Die Datenformate der einzelnen Rechner dürfen unterschiedlich sein. Die Konvertierung bei der Kommunikation zwischen den Formaten wird von PVM übernommen.
Geschwindigkeiten:
Die Rechengeschwindigkeit der verwendeten Rechner darf stark unterschiedlich sein. Der Programmierer muss dies durch eine dynamische Lastverteilung ausgleichen.

PVM eignet sich durch die beschriebenen Eigenschaften bezüglich der Heterogenität vor allem als System zur Nutzung von Rechner-Clustern als Parallelrechner. Hierdurch ist PVM optimal für den Einsatz in Firmen, die die Anschaffung eines teuren Parallelrechners scheuen und ein Netzwerk von Personal-Computern oder Workstations besitzen. Unterstützt wird dies durch besondere Funktionalitäten zur Steuerung und Überwachung der Prozesse.

Oft werden Rechner verschiedener Leistungsklassen zu einem Parallelrechner zusammengeschaltet. Man sollte dabei sehr große Sorgfalt auf die Erhaltung der Rechenlast-Balance legen. Diese Balance wird häufig durch andere Benutzer gestört, die intensiv von einem Rechner der virtuellen Maschine Gebrauch machen oder große Datenmengen im Netzwerk versenden.

Eine Reihe von Werkzeugen ist entwickelt worden, um dem Programmierer die Arbeit zu erleichtern. Die graphische Oberfläche ,,xpvm`` visualisiert die Kommunikationen, den Programmablauf, Kommunikationszeiten und Wartezeiten. Debuggen wird durch den Aufruf von Debuggern der Compilerhersteller ermöglicht.



Unterabschnitte
next up previous contents
Nächste Seite: Programmierung: Aufwärts: Message-Passing Vorherige Seite: Message-Passing   Inhalt