next up previous
Next: References Up: Portable Parallelprogrammierung mit Previous: Die Portierbarkeit dieses

Fazit und Alternativen

Es wurde gezeigt, daß es unter PVM einfach ist, ein vorhandenes heterogenes Netz von Workstations als einen virtuellen Parallelrechner zu nutzen. Aufgrund der weiten Verbreitung von PVM ist es möglich, die unter diesem System entwickelten parallelen Programme auch auf echte Parallelrechner und massiv-parallele Systeme zu portieren.

Wie an dem Beispiel eines parallelen Branch & Bound--Algorithmus jedoch deutlich wurde, stößt diese Portierbarkeit schnell auf Grenzen, wenn ein unregelmäßiges Problem gelöst werden soll und dabei dynamische Lastverteilung eine große Rolle spielt. Kommunikation und Lastverteilung können auf einem MPP nur effizient gestaltet werden, wenn möglichst alle Eigenschaften der Hardware transparent sind, was aber gegen die Konzeption von PVM spricht.

Eine interessante Alternative bietet sich hier durch das Message Passing Interface (MPI) an. MPI ist ein Standard für portable Parallelprogrammierung [4]. Er wurde im Mai 1994 endgültig von einem Gremium, an dem fast alle Parallelrechnerhersteller beteiligt waren, festgelegt. Er beschreibt etwa 120 Routinen, die eine MPI--Implementation auf einem parallelen System zur Verfügung stellen muß. Da dieser Standard aus der Welt der Parallelrechner entstanden ist, werden z.B. kein gemeinsamer Bus, sondern Prozessor-Topologien bei den Kommunikationsroutinen zugrundegelegt.

Für eine effiziente Implementation der MPI--Routinen auf einem bestimmten parallelen System ist der entsprechende Hardware-Hersteller verantwortlich, MPI legt lediglich die Schnittstelle fest. Es existiert mittlerweile auch schon eine Implementation für Workstation-Cluster [5]. Der Anwender hat so die Möglichkeit, ein paralleles Programm zu schreiben, was bei der Portierung die Eigenschaften der entsprechenden Parallelrechner möglichst optimal ausnutzt.

Bei all den Hilfestellungen, die die hier vorgestellten Systeme bieten, darf nicht vergessen werden, daß in erster Linie die eigentliche Parallelisierung eines Problems, welche nach wie vor der Anwender entwickeln muß, die Effizienz eines parallelen Programms bestimmt, inwieweit diese Parallelisierung auf der Hardware umgesetzt wird, ist nur zweitrangig.



WWW-Administration
Thu Jul 13 19:06:34 MET DST 1995