Parallele, insbesondere massiv-parallele, und verteilte Systeme gewinnen mehr und mehr an Bedeutung. Neben den bekannten Vorteilen bleibt als Hauptproblem die hohe Komplexität der Programmierung dieser Systeme. Eine Vereinfachung der Programmierung und eine Optimierung von parallelen und verteilten Programmen kann besonders über Methoden des Compilerbaus erreicht werden. In dem aktuellen Forschungsprojekt ``Konzepte zur Compilerunterstützung der Programmierung massiv-paralleler und verteilter Systeme'' werden entsprechende Konzepte entworfen, mittels der am Lehrstuhl entwickelten Distributed C Entwicklungsumgebung realisiert und an verschiedenen praktischen Beispielen auf unterschiedlichen Hardwaresystemen untersucht.
Die Distributed C Entwicklungsumgebung ist eine Sammlung von Werkzeugen zur parallelen und verteilten Programmierung auf Einprozessorsystemen, Mehrprozessorsystemen und verteilten Systemen, insbesondere auf heterogenen UNIX-Rechnernetzen. Die Programmierung der Parallelität erfolgt explizit durch den Entwickler in der Sprache Distributed C, die durch eine Erweiterung von Standard C um spezielle Konstrukte zum Prozeßmanagement wie die Vereinbarung, Erzeugung, Synchronisation, Kommunikation und Terminierung von simultan ablaufenden Programmteilen gebildet wird.
Die Entwicklungsumgebung besteht derzeit aus den Komponenten Distributed C Compiler (dcc), Laufzeitbibliothek (dcc.a), Verwaltungsprozeß (dcadmin), Installationsprogramm (dcinstall), Plazierungsauswerter (dclocate) und Analyseprogramm (dcanalyze). Mit dem Installationsprogramm ist in Verbindung mit einer systembeschreibenden Konfigurationsdatei die komfortable Generierung und Bereitstellung der Binärdateien auf den einzelnen Rechnern eines heterogenen Netzwerkes moglich. Durch die Kombination der Werkzeuge Analyseprogramm, Plazierungsauswerter und Verwaltungsprozeß ist ein Verfahren zur rechnerunterstützten Prozeßverteilung realisiert.
Die Werkzeugumgebung wurde auf Sun SPARCstations unter SunOS und Solaris, Hewlett Packard Workstations vom Typ 9000/7xx unter HP-UX, Convex Supercomputern vom Typ C220 und C3840 unter ConvexOS, IBM ATs unter LINUX und IBM Workstations unter AIX und in heterogenen Rechnernetzen bestehend aus diesen Rechnertypen eingesetzt. Mit der Werkzeugumgebung wurden mehrere verteilte Programme implementiert, unter anderem ein paralleler Raytracer. Die Distributed C Entwicklungsumgebung wird im Rahmen von Fortgeschrittenenpraktikas und Diplomarbeiten eingesetzt und weiterentwickelt.
Aktuell entwickelt, implementiert, angewendet und analysiert wurde ein Verfahren zur Prozeßverlagerung in heterogenen Rechnernetzen basierend auf einer speziellen Übersetzungstechnik .
Richard Schwab, 10.01.1996
Christoph Pleier, 8.8.1996