| ![]() | |||||||||
aufweisen sollten. Die Anpassung des Programms hinsichtlich der ?Ubergabeparameter und die anschliessende
Kontrolle der korrekten Ausf?uhrung w?urde den Konvertierungsprozefl abschlieflen.
Dieses Vorgehen hat mehrere Nachteile. Erstens entsteht hierdurch eine zweite Programmversion.
Zweitens mufl eine nicht unerhebliche Zeit daf?ur aufgewendet werden, um sich mit den Funktionen
und den ?Ubergabeparametern der neuen Message-Passing Befehle vertraut zu machen. Und drittens
mufl der gesamte Arbeitsablauf wiederholt durchlaufen werden, wenn eine weitere Kommunikationsbibliothek
benutzt werden soll.
Ein ef?zienteres Vorgehen ist die Einrichtung einer Art Kommunikationsschnittstelle. Die MessagePassing
Befehle werden hierbei nicht durch den entsprechenden Befehl der neuen Bibliothek, sondern
durch einen allgemeing?ultigen Funktionsaufruf ersetzt. Eine Sammlung solcher Befehle stellt
die CMPL (Compatible Message Passing Library) zur Verf?ugung. Diese Bibliothek ist momentan
f?ur NX, MPI und Parmacs 6.0 verf?ugbar. Der Funktionsumfang lehnt sich an der NX-Bibliothek
an. F?ur die anderen Message-Passing Systeme bedeutet dieses einerseits, dafl die Befehle, die in der
NX-Bibliothek nicht vorkommen, auch nicht in der CMPL vorhanden sind. Andererseits existieren
Befehlskonstrukte, die die Funktionalit?at von bestimmten NX-Befehlen nachbilden, so z.B. die
nicht unterst?utzten globalen Routinen bei Parmacs 6.0.
Die Nutzung der CMPL-Bibliothek ist vorrangig vorgesehen f?ur die kompatible Konvertierung vorhandener
Programme. Der Anwender mufl in diesem Fall nicht im Detail wissen, was der einzelne
CMPL-Aufruf im Hintergrund ausf?uhrt, da er die Funktion des Original-Aufrufs kennt. Wer CMPL
benutzen will, um ein neues kompatibles Programm zu erstellen, sollte sich zus?atzlich die in Kapitel
7 genannten Postscript-Files anschauen.
3 Die CMPL-Bibliothek
In diesem Abschnitt soll nur kurz der Inhalt und Aufbau der CMPL-Bibliothek erl?autert werden.
Eine ?Ubersicht ?uber die CMPL-Befehle und deren Verf?ugbarkeit ist in Kapitel 6 und etwas ausf?uhrlicher
in der Online-Hilfe von XCMPL zu ?nden.
Erkl?arungsbed?urftig sind die Namen der CMPL-Routinen. Allgemeing?ultige Namen w?aren entweder
sehr lang (z.B. EmpfangeAsynchronMitInformationsArray) oder ohne intuitive Aussage (z.B.
EAMIA). Ein Kompromifl ist die benutzte abstrakte Bezeichnung der CMPL-Befehle, die viele
Vorteile aufweist. Der oben angegebene Befehl heiflt z.B. MP011AX. Die Befehlsnamen sind also
wie folgt aufgebaut:
ffl Befehlsk?urzel ?MP?
ffl Versionsnummer ?0?
ffl Befehlsklasse ?0-9?
ffl Befehlsnummer ?0-9?
ffl Buchstabenfolgen f?ur:
? die Kommunikationsart:
? S (synchron)
? A (asynchron)
? den Datentyp (dtype ist die numerische Angabe f?ur den Datentyp):
? L (Logical, dtype = 10)
? I (Integer, dtype = 20)
? R (Real, dtype = 30)
? D (Doubleprecision, dtype = 40)
? erweiterte Funktionen: X
Desweiteren sind die Befehlsklassen festgelegt:
Initialisierung
1 Kommunikation
2 Kommunikationskontrolle