Die Wandlung der zahlenfressenden Monster (Teil 1)

Supercomputer verlassen die Exoten-Nische von einst

03.11.1989

Einst waren sie ausgesprochene Raritäten, die zahlenfressenden Monster namens Supercomputer, zu deren Zähmung man immer gleich eine kleine Armee ausgefuchster Mathematiker und Informatiker brauchte.

Doch im gleichen Tempo, in dem Feld-Wald-und-Wiesen-Allzweckrechner in Form von PCs und Workstations flott auf den Schreibtisch von Herrn Jedermann vorgedrungen sind, haben auch die sogenannten Number-Cruncher ihr Getto verlassen und sich auf den Marsch in die reale Welt gemacht: So findet man heute selbst dort mehr und mehr superschnelle Maschinen vor, wo man sie früher nie und nimmer erwartet hätte, beispielsweise in den Analytiker-Büros typischer Wallstreet-Moneymakers.

Supercomputer, für die archetypisch nach wie vor die Rechner des US-Herstellers Cray stehen, sind aber nicht nur auf dem Weg in die Gefilde des biederen Kommerzes; sie verändern gleichzeitig auch in atemberaubendem Tempo ihr Erscheinungsbild. Denn nicht nur, daß sie seit einigen Jahren auch in den abgespeckten, aber den noch verblüffend leistungsstarken Varianten der sogenannten "Minisuper" daherkommen und um Käufer buhlen; auch intern unterziehen diese einstmals fast nur als Vektor-Rechner gebauten Maschinen sich atemberaubenden Metamorphosen. Im folgenden soll dies an Hand einiger aktuelle, charakteristischer Beispiele gezeigt werden, die die Welt der Supercomputer schlaglichtartig beleuchten.

Geht man den Bauprinzipien herkömmlicher wie innovativer, historischer wie brandneuer Supercomputer einmal gedanklich auf den Grund, so findet sich bei allen die zentrale Idee des "tausend Arme leisten mehr als zwei". Sowohl früheste experimentelle als auch frühe kommerziell verfügbare Computer und Supercomputer holten ihre Leistung stets aus einer internen Architektur, die statt eines Rechenwerks gleich immer deren mehrere nutzte, und die außerdem Funktionseinheiten wie Ein-Ausgabe-Werke sowie Speicher in der Vielzahl vorsah.

Zwar reichen die Versuche, einfach eine große Zahl gleichartiger Universalprozessoren nach Art eines Gitters zusammenzuschalten und diese dann alle parallel an verschiedenen Teilen ein- und derselben Gesamtaufgabe rechnen zu lassen, schon bis mindestens in die 60er Jahre zurück (Illiac IV etc.) doch vor allem wegen der damals noch exorbitant schwierigen Programmierung für solche Architekturen blieben superleistungsfähige Maschinen dieser Art doch eher eine Skurrilität in der verschlossenen Welt der Forschungslaboratorien. Die Idee, tausend statt zweier Arme werkeln zu lassen, sollte aber dennoch schon bald in etwas abgewandelter Gestalt am Beginn einer ausgeprochenen Erfolgsstory stehen.

Die Grundidee des Parallelismus trug eigentlich schon in jenen frühen Jahren der Entwicklung uriger Relais- und Elektronenröhren-Kalkuliermonster erste Früchte, als man bewußt auf immer größere Wortbreiten überging und damit erreichte, daß zum Beispiel ein 36-Bit-Rechner a priori schneller arbeitete als etwa ein 16-Bit-Kalkulationsautomat. Während übrigens finanziell knappe Forscher wie etwa der Deutsche Fromme justament in die Gegenrichtung marschiert sind und in den 50ern der Welt einmal kurz bewiesen: Es geht sogar, wenn auch langsam, mit einer Einbit-Maschine ganz ohne jede Parallelität.

Parallelität auf der Ebene des einzelnen arithmetisch-logischen Werks, also in Gestalt von betont breiten Rechner-Worten, war seit jeher ein ausgesprochen zündender Gedanke - konnte man einen Rechner da, durch doch erheblich leichter

und billiger auf Schnelligkeit züchten, als wenn man nur immer versucht hätte, allein die Transistoren des Prozessors immer schneller zu machen. So kam es fast von selbst, daß zu den Ganzzahl-Rechenwerken allmählich auch komplette Gleitkomma-Spezialrechenwerke parallelgeschaltet wurden, die nun schon für ein gewisses Maß an echtem "Parallelbetrieb" in der Maschine sorgten; und daß außerdem weitere Spezialprozessoren wie etwa Kanal-Ein-Ausgabe-Werke, spezielle Einheiten zum raschen Verwalten der verschiedenen Speichermedien, und dergleichen mehr vorgesehen wurden. Dadurch begannen am Ende selbst biedere Universalrechner der diversen Größenklassen intern und beinahe unmerklich ein stattliches Maß an Parallelismus aufzuweisen, ohne allerdings deshalb im strengen Sinne schon Parallelrechner oder auch nur Vektor-Supercomputer zu sein.

Supercomputer - mit diesem Ehrentitel belegte die Fachwelt erst jene für schnellstes Rechnen konzipierten Systeme, die speziell dem flotten Bearbeiten geordnet vorliegender Zahlenfelder, also Matrizen, dienen. Bei ihnen hat man als Rechenwerke sogenannte Pipelines oder auch Fließbänder vorgesehen, welche die zu bearbeitenden Zahlen im Taktbetrieb - ganz wie bei VW am Band - von einer Teil Bearbeitungsstation zur nächsten weiterleiten, wodurch auf einem Fließband mit, sagen wir, fünf Stationen immer fünf Befehle gleichzeitig, wenn auch in taktverschobenen Teil-Schritten, ausgeführt werden - also letztlich parallel. Da man Supercomputer intern außerdem noch mit mehreren und teilweise auf bestimmte Berechnungsarbeiten hin optimierten Fließbändern ausstattet, wird bei voller Auslastung aller Schaltelemente auch hier ein hohes Maß an paralleler - und damit zeitsparender - Rechnerei erreicht.

Supercomputer oder auch Vektor-Rechner herkömmlicher Art sind vergleichsweise einfach zu programmieren, sofern man aus ihnen nicht gerade das allerletzte Quentchen an Leistung herauskitzeln möchte, aber sie weisen doch einen gravierenden Nachteil auf: Sie sind nur dort wirklich flott und gut ausgelastet, wo sie mit ein- und der selben Grund-Instruktion monoton immense Mengen einzelner Datenelemente beziehungsweise Zahlenwerte bearbeiten können. In der realen Welt vielfältigen Datenabhängigkeiten beziehungsweise der - jene reflektierenden - Programmstrukturen hingegen sind sie häufig gezwungen auf andere Teil-Prozesse eines Programms und mithin auch auf andere Daten ausgesprochen ineffizient.

Aus genau diesem Grund brachten die letzten paar Jahre zwar eine Entwicklung zu immer noch schnelleren Hyper-, vor allem aber eher billigen Schmalspur-Supercomputern, teils aber auch heftige Diskussion des zugleich eine skizzierten Konzepts "echter" Parallelrechner mit mehreren bis sehr vielen gleichzeitig arbeitenden Universalprozessoren, wobei diese im Idealfalle alle von gleicher Art - und daher universell mit Aufgaben aller Art belastbar - sein sollten.

Im Mißdeutungen vorzubeugen, sei an dieser Stelle kurz eingeschoben, daß auch diese Universalprozessoren, wie etwa die typischen Mikroprozessoren intern längst schon so etwas wie kleine Großrechner von einst sind, intern also bereits alle Merkmale der verteilt-parallelen Bearbeitung aufweisen. Doch werden diese internen Parallelismen in der Diskussion der Multiprozessor-Konfigurationen innovativer Parallelrechner in der Regel bewußt nicht weiter beachtet, wenngleich manche derartige Rechner intern sogar schon eigenen Vektor-Rechenwerke besitzen und dadurch noch mehr den Charakter vollgültiger, kleiner (Super-) Rechner annehmen.

Auf dem Intel-Mikroprozessor des Typs 80386 (samt zugehörigem Gleitkomma-Prozessor) basiert beispielsweise ein von Intel produzierter Multiprozessor-Computer des Typs IPSC-2, der an der Technischen Universität München zu Forschungszwecken dient und den Professor Arndt Bode unlängst der Presse vorstellte. Er ist laut Bode ein gutes Exempel für jene neuen Ansätze in der Nutzung der Parallelverarbeitung, die uns Maschinen von weit mehr als dem Zehnfachen der heute erreichbaren Leistungen schenken dürften, während der herkömmliche Weg, nur immer noch raffiniertere Prozessoren mit immer noch schnellerer Taktfolge zu bauen, bei etwa einem Leistungs-Zuwachs um den Faktor zehn technisch ganz einfach sein Ende erreichen dürfte.

Bei den modernen Konzepten für Multiprozessor-Rechner gibt es für Bode auf der einen Seite jene Konfigurationen, bei denen mehrere Prozessoren gleicher Art über einen gemeinsamen Bus - oder maximal deren zwei - miteinander verbunden sind und meist auch einen gemeinsamen Speicher bedienen. Für diese Systeme stehen exemplarisch Rechner wie etwa die Serie Siemens MX500 beziehungsweise die Sequent-Computer, und ihr großer Vorteil ist nach Angaben des Professors der, daß sie relativ einfach zu programmieren sind. Für den Programmierer sind sie nicht viel anders zu behandeln als ein Einzelprozessor, während die interne Verteilung der Rechen-Last auf die - 32 bis allerhöchstens 64 - Prozessoren automatisch nach dem Schema einer Warteschlange lauffähiger Prozesse erfolgt, die der Reihe nach aktiviert werden.

Der Nachteil dieser Systeme liegt darin, daß die Busse und die gemeinsamen Speicher als globale Betriebsmittel aller Prozessoren kritische Flaschenhälse sind, die daher auch eine Beschränkung auf meist höchstens 32 Prozessoren erzwingen, und die der Leistungssteigerung durch einfaches Hinzufügen von immer mehr Prozessor-Einheiten mithin leider eine natürliche obere Schranke setzen.

Erheblich interessanter und zukunftsträchtiger ist daher das Konzept der beinahe beliebig erweiterbaren Architekturen, mit denen sich Maschinen im Leistungsbereich zwischen etwa einem Oberklasse PC und einem Top-Supercomputer beliebig darstellen lassen.

Hier gibt es wegen der vielfach baum- oder auch gitterartigen - logischen. nicht unbedingt auch physischen - Anordnung der einzelnen Prozessor-Knoten keine gemeinsam benutzten Busse, sondern einfach ein freizügiges Kommunizieren jedes mit - fast - jedem. Auch gemeinsam benutzte Speicher sind hier passe, denn zu jedem Knoten gehört neben den Rechen- und Kommunikations-Werken auch hinreichend viel lokaler Haupt- plus eventuell Pufferspeicher sowie manchmal überdies lokale, also gleichfalls verteilt angeordnete Peripherie.

Diese Architekturen, bei denen vielfach jeder Prozessor noch direkten Zugriff auf die Speicher der ihm - logisch - benachbarten Prozessoren hat sind immer noch ziemlich schwer zu programmieren; vor allem, wenn man auf gute Ausnützung der Maschine mit ihren beispielsweise 32 oder auch 128 Knoten Wert legt. Deshalb ist; Bode der Auffassung, diese Parallelrechner würden wohl nur dann den Durchbruch am Markt schaffen, wenn es gelingt, sie vom Odium des exotisch-singulären, nur auf wenige Problemstellungen zugeschnittenen Spezialrechners zu befreien und sie als universell programmierbare Allzweckrechner zu präsentieren.

Diese Entfesselung der Mehrprozessor-Parallelstrukturen aber hat zur Vorbedingung, daß die Parallelität der Maschinen "virtualisiert" werden kann: daß es also gelingt, dem Anwendungsprogrammierer eine derartige Struktur als nach außen hin eher konventionelle Einheit zu präsentieren, deren interne Vorgänge - wie etwa die fortlaufende, dynamische Aufteilung der Rechenaufgaben auf die einzelnen Teilstrukturen des Systems - ihm weitgehend verborgen bleiben.

Typische Vertreter skalierbarer Multiprozessor-Systeme mit physisch voll auf die einzelnen Knoten verteilten Betriebsmitteln sind laut Bode heute unter anderem der bekannte Suprenum, der IPSC-2 auch der Hypercube von Intel und die Erlanger Forschungs-Rechner DIRMU und EGPA; doch Maschinen wie der Parsytec-Megaframe beziehungsweise -Supercluster aus Aachen oder der TX3 von IP aus Karlsruhe sowie der P1-Parwell aus München, an dem die TU-Forscher gleichfalls ihre Studien treiben, gehören im Grunde auch dazu.