Der Entwicklungsschwerpunkt liegt bei den Compilern

Noch fehlt es an Software für massiv-parallele Systeme

15.11.1991

Im ersten Teil seines Berichtes über die Lage im Supercomputer-Bereich erläuterte Gernot Schärmeli, daß die traditionellen Rechnerarchitekturen schon bald den neuen Aufgabenstellungen nicht mehr gerecht werden können. Massivparallele Systeme erscheinen hier als Ausweg. Bis es soweit kommt, müssen aber noch einige Probleme bewältigt werden - beispielsweise bei der Hardware-Entwicklung.

Als Problempunkt Nummer zwei - und der ist weit gewichtiger - stellt sich die Frage nach der geeigneten Software, mit der sich die Vielzahl von Rechnerknoten zum Zusammenspiel bewegen läßt, und zwar derart, daß der Anwender seine bisherige Applikation unmittelbar und produktiv weiter nutzen kann. Dies ist ein Problem, weil die Erwartungen manchmal unrealistisch hoch sind. Es steht nicht die gewohnte Software-Umgebung zur Verfügung: weder auf Betriebssystem-Seite - hier tauchen fremde Namen auf wie "Helios" bei Parsytec oder "NX/2" bei Intel -, noch auf Compiler-Seite und schon gar nicht auf der Applikationsebene. Was der klassische Supercomputer-Anwender im Produktivbereich erwartet, ist eine positive Antwort auf die Frage: "Läuft meine Applikation auf dieser Maschine?" oder "Kann ich vorhandenen Quellcode in Fortran, ADA oder C -mühevoll über zehn Jahre hinweg ausgefeilt, geschrieben für eine sequentiell und vektorisierend arbeitende Plattform durch einen Compiler schicken, so daß sich die Parallel-Power zum Leben erwecken läßt?"

Daß der User eine solche Maschine auf Ressourcen-Management-Ebene unter Unix - oder gar DECs VMS - sehen möchte, versteht sich darüber hinaus schon fast von selbst.

Was das Ziel betrifft, Parallelrechner zu allgemein genutzten Systemen zu machen, so ist beachtliches erreicht worden. Mehr und mehr "ins Angebot aufgenommen" wird Unix - zumindest als Betriebssystem-Schnittstelle nach außen. Und für Connectivity, also für die Integrationsfähigkeit etwa als Compute-Server in einem heterogenen Environment, wird über weitere Standards gesorgt: über Ethernet, NFS oder gar das High-Performance-Parallel-Interface (Hippi), mit dem sich Peripherie an einen klassischen Supercomputer ankoppeln läßt.

Compiler für die Software-Übersetzung

Tatsächlich aber hakt es an den automatisch "von sequentiell nach parallel" übersetzenden Compilern. Und noch einige Jahre dürften vergehen, darin sind sich die Experten einig, bis Software auch nur halbwegs imstande sein wird, ein sequentiell codiertes Problem sachgerecht zu analysieren und selbständig in eine Vielzahl gleichzeitig ausführbarer Prozesse (oder Tasks) aufzusplitten, so daß dann jeder Knoten seine Task bearbeiten kann. Diese "grobkörnige" Parallelisierung erfordert eine Menge an geradezu universalem Wissen über alle möglichen Probleme. Ein solcher Compiler müßte über sein KI-Potential imstande sein, aus den in Hunderttausenden Codezeilen versteckten Algorithmen die "Semantik" herauszulesen, das heißt das zugrundeliegende physikalische Beschreibungsmodell zu erkennen.

Der Compiler muß die Knotenstruktur erkennen

Es genügt ja nicht, einen Problemraum in viele Subräume aufzusplitten, auf den die Knoten dann ihre Tasks abarbeiten - also etwa 1000 x 1000 x 1000 Gitterpunkte aufzuspalten in 1000 Sub-Räume zu 100 x 100 x 100 Gitterpunkten. Zuvor muß erst einmal erkannt werden, daß es sich um ein Problem mit 3D-Struktur handelt. Von zentraler Bedeutung ist dabei: Die einzelnen Tasks müssen immer wieder mit Tasks auf anderen Knoten kommunizieren, um Zwischenergebnisse auszutauschen. Bei einer Wetterrechnung mit 3D-Würfel-Aufteilung steht ein Knoten also mit 6 anderen Knoten in logischer Verbindung. Handelt es sich aber um ein Schach- oder um ein anderes KI-orientertes Problem, dann liegt ihm keine 3D-Gitter-Topologie zugrunde, sondern eine baumartige Struktur - innerhalb der Tarif diversen Hierarchie-Ebenen "Kinder"-Knoten Wissensräume durchforsten und an ihre jeweilige "Mutter" berichten.

Damit ist die vielfältige Welt der Problemtopologien und folglich der zu erkennenden Kommunikationsstrukturen aber keineswegs beschrieben. In heutigen Applikationen verstecken sich auch Ring-, 2D-Gitter-, Hypercube- und weitere elaborierte Topologien mehr.

Convex hat den Aufstieg zum Marktführer im Bereich der unteren bis mittleren Supercomputer-Klasse nicht allein deshalb geschafft, weil man gute und erschwingliche Hardware bot. Insbesondere die weithin hochgeschätzten Compiler, die aus dem sequentiellen Code herauslesen konnten, was vektorisierbar ist, sorgten für den Erfolg - denn das war die Voraussetzung dafür, möglichst schnell eine große Anzahl von Applikationen für den Rechner gewinnen zu können. Gemessen an diesem Compiler jedoch, ist die Herausforderung an eine grobkörnig parallelisierende Software beschriebenen Kalibers um eine Dimension größer. Intel hat 1990 die Rice-University beauftragt, sich der Dinge anzunehmen. Wie gesagt, es dürfte ein halbes Jahrzehnt-Werk werden - zur großen Genugtuung der klassischen Superrechner-Anbieter.

An diesen Zeitrahmen sollte man immer denken. Denn wenn man immer wieder von "neuen, optimierenden Compilern" hört, handelt es sich um "feinkörnig" parallelisierende. Mit einer Aufsplittung in Knoten-Tasks haben sie nichts zu tun, sondern sie sorgen erst einmal für die verbesserte Nutzung der Features des einzelnen Knotenprozessors. So hat Intel nicht weniger als zwei volle Jahre gebraucht, um nach Erscheinen des 860 endlich optimale Fortran- und C-Compiler anbieten zu können. Sie suchen sich diejenigen Code-Passagen (innerhalb einer Task) heraus, die sich gleichzeitig in der Skalar- und der - Floating-Point-Einheit des Chips - und in letzterer noch in einer Art Vektorisierung - abarbeiten lassen.

Wenn es heute dennoch bereits gut 1000 Parallel-Systeme mit von bis zu hungerten MIMD-Knoten im Einsatz gibt, dann tun sie ihre Dienste vorwiegend auf Campus-Ebene. Nur hier und da finden sich Installationen auch im industriellproduktiven FuE-Bereich, und zwar dort, wo das Budget für einen entsprechend klassischen Superrechner zu klein, die Expertise und Entschlossenheit aber, sich für die Nutzbarmachung zu engagieren, groß ist. Die tradierte Image-Formel liest sich etwa so: "Die preisgünstigen Maschinen mit den vielen CPU-Chips sind sicher fein aber leider doch noch eher etwas für Freaks."

Bei allem Respekt vor den Zwängen, denen sich die FuE-Leute in der produktionsorientierten Industrie ausgesetzt sehen: Derart schwarzweiß kann man die Dinge längst nicht mehr sehen. Und so betont auch Parsytec-Chef Falko Kübler: "Wir wenden uns nicht an Freaks, sondern an Innovatoren." Insbesondere im Produktivbereich gilt: Wer sich mittels Einsatz einer neuen Technologie einen echten strategischen Vorteil verschaffen will, kann nicht solange warten, bis sie jedem Wettbewerber zugänglich ist.

Analysenwerkzeuge helfen beim Überführen

Allzuviel Aufwand, so wie es noch vor ein oder zwei Jahren der Fall war, muß heute gar nicht mehr in die Nutzbarmachung der Parallelrechner hineingesteckt werden. Das zeigen Berichte von Pionier-Usern allenthalben - ob die Plattform eine Intel iPSC/860, ein Ncube- oder ein Transputer-System von Parsytec ist. Handarbeit ist nötig, will man die sequentiellen Codes überführen.

Wenn der Innovationswillige an seinen 100 000, in 10jähriger Verfeinerungsarbeit entwickelten Lines-of-Fortran-Code zu verzweifeln beginnt, wofür zudem so gut wie keine brauchbare Dokumentation existiert, dann kann ihm geholfen werden. Analysewerkzeuge durchforsten den Code auf Unterprogramm-Strukturen und Datenabhängigkeiten. Sie geben ihm einen Strukturüberblick und sagen auch, wo der Code die meiste Zeit "verbrät", also wie rechenintensiv die einzelnen Partien sind. Dann ist allerdings Kopfarbeit gefordert, um die Parallelisierungsstrategie zu entwerfen - ganz ähnlich wie bei allen Großprojekten, die von einem Team von Menschen zu erledigen sind: Es gilt, die Ressourcen, Kompetenzen und Kommunikationswege zu organisieren. Bei Schritt Nummer drei, der Programmierung, bieten sich gleich zwei Verbesserungen: Als Bibliothekselemente stehen Mathematik-Funktionen und Gleichungslöser zur Verfügung - sie organisieren selbstständig parallele Ressourcen für Matrizenberechnungen -, und in Form von Bibliotheks-Elementen lassen sich letztlich jene Programmteile integrieren, die für die einzufügende Inter-Knoten-Kommunikation sorgen müssen. Dabei definiert der Programmierer diese "Message-Passing-Calls" auf äußerst komfortable und simple Weise nach dem Schema "send Message nach Knoten x-1, Prozeß yz" da auf jedem Knoten auch Multitasking gefahren werden kann, muß auch der jeweilige Prozeß genannt werden. Wohlgemerkt: Den Programmierer braucht der konkrete physikalische Knoten in der Maschine gar nicht zu interessieren, und die Knoten lassen sich über eine Variable ansprechen, was der Strukturierung gemäß gewählter Programmtopologie sehr entgegenkommt.

Standard-C und Fortran werden eingebunden

Via Einbinden der Bibliotheksteile ist es also möglich, mit Standard-Fortran oder Standard-C parallelen Code zu erstellen. Auf Sprachen wie Linda oder Occam, von vornherein auf Parallelarchitekturen ausgerichtet, muß also erst gar nicht umgestiegen werden.

Als fortgeschrittenes Werkzeug bietet sich heute der Parallel-Debugger an, der aufspürt, ob der in der Regel asynchrone und deshalb nur schwer nachvollziehbare Inter-Knoten-Datenaustausch funktioniert oder ob Knoten in Deadlocks hängen, das heißt ewig auf Nachrichten anderer warten. Schließlich stehen Werkzeuge für die Leistungsoptimierung bereit, die analysieren, wie harmonisch alle verfügbaren Knoten ausgelastet sind.

Gemäß der Devise "Get the Technology out of the Campus Research Lab, get it to Production Site" hat Intel enorme Anstrengungen in die Entwicklung des Tool-Sets und damit der Software-Umgebung gesteckt. Und gerne sieht man sich auch in einzelnen Bereichen vorne etwa mit dem den Message-Passing-Prozeß analysierenden Debugger.

Wenn Parsytec nun neue GC-Hardware bringt, soll es, so heißt das Ziel, an vergleichbaren Werkzeugen allerdings nicht fehlen. Professor Arnold Rosenberg von der University of Massachusetts, Guru-Theoretiker unter den praktizierenden Parallel-Forschern, nennt die Relationen beim Namen: "Es ist um einiges leichter, die Maschinen zu entwickeln als die passende Software dazu" - wenn auch etwas überspitzt augenzwinkernd gemeint. Auch ihm ist bewußt, daß sich die Massiv-Parallelen wahrlich nicht durch bloße Addition einzelner Computer erzeugen lassen. Kunst und Errungenschaften liegen hier im Networking, in der intelligenten Knotenvernetzung in Höchstleistungs-Manier.

Tatsächlich läßt sich in Sachen Networking auf eine immense Entwicklung zurückblicken, die mit dem legendären "Cosmic Cube" 1982 am Caltec in Pasadena startete. Waren dort noch 128 8086er über Standleitung fest miteinander verdrehtet in einer Hypercube-Topologie vom Grade 7, ist heute der Durchbruch zur hochflexiblen Wählleitungs-Technologie gelungen, so daß sich bei Bedarf von jedem der Tausenden Knoten zu einem anderen blitzschnell ein Kommunikations-Link schalten läßt. So überragend diese Errungenschaften auch sind - es sind eben nur die Hausaufgaben. Die große Herausforderung liegt nunmehr im ständigen Puschen der Softwarewerkzeuge - und es kommt ganz wesentlich darauf an, das Wissen rund um die "Welt des Parallelisierens" zu verbreiten. In Relation zur Ressourcen- und Finanzausstattung eines Unternehmens wie Intel, gewaltig gestärkt durch die Budgets der ehrgeizigen Darpa sowie den Aktivitäten der Rechnertechnik-Hochburg Caltec, kann der deutsche Hersteller Parsytec hier noch mitspielen.

Transputer-Maschinen kommen inzwischen in Universitäten und Instituten zum Einsatz und fungieren dort als die weitverbreitete Plattform, auf der Wissen rund ums Parallel-Computing erarbeitet wird. Was den Cash-flow betrifft, so kann man sich nicht beklagen:

Die EG-Kommission scheint Gefallen am europäischen Parallelrechnen als einer strategischen Position gefunden zu haben, und trotz der 160-Millionen-Mark-Pleite mit dem Image-Projekt "Suprenum" unterstützen DFG, BMFT und Länderministerien weiterhin das Aachender Unternehmen. Europa, so erkennt auch die US-Szene an, ist jedenfalls zu einer Hochburg im wissenschaftlich-forschenden Umgang mit der neuen Art des Rechnens avanciert.

Kompetenz-Zentren entstehen in Europa

Mittlerweile strömen Parallelanwender in die RWTH Aachen und orientieren sich über Top-Entwicklungen in Sachen Strömungssimulation, einem DFG-Schwerpunkt-Programm - gerechnet auf einer Parsytec-Maschine mit derzeit 256, in der Endausbaustufe mit 512 Knoten. An der Uni Paderborn wurde Europas größter, frei konfigurierbarer Parallelrechner eingeweiht - ein Transputer-System mit 320 Knoten als Arbeitspferd der vielversprechenden Institution namens (PC(2)).

Neue Kompetenz-Zentren sind in Europa also im Entstehen und gesellen sich zu den existierenden hinzu, zur GMD beispielsweise, die sich im Rahmen der Suprenum-Entwicklung zumindest weltweiten Ruf darin erarbeitete, die Sprachen Fortran oder C zukünftig mit standardisierten Extensions für Inter-Knoten-Kommunikation zu erweitern.

Die Chance für einen europäischen Einstieg ins Supercomputing liegt im Paradigmenwechsel. Denn in solchen Situationen werden die Ressourcen neu verteilt. Die Förderungspolitiker scheinen dies erkannt zu haben und auch tragen zu wollen - wenngleich die hiesige Industrie noch weit davon entfernt ist, als nennenswerter Geldgeber eine gestaltende Rolle zu spielen. Das ist genauso bedauerlich wie ihre stark abwartende Haltung. So muß Parsytec-Chef Kübler erst einmal auf die Innovatoren im Campus-Bereich setzen: "Die breite Industrie scheint diese Bugwelle einfach zu brauchen, um sich dann nach zwei, drei Jahren erfassen zulassen", wenn alle es tun. Heute beflügelt der gute Personal Computer die Unternehmen allenthalben. Als er kam, schlug ebenfalls die Stunde des Paradigmenwechsels. Und kein Mensch konnte ernsthaft erwarten, daß die gewohnte, vorhandene Mainframe-Software schlicht auf die neuen Maschinen zu übertragen sei.