Anspruchsvolle Anwendungen stellen hohe Anforderungen an Entwickler:

Superrechner werden nie zu schnell sein

10.12.1982

Die mit den heutigen Großrechnern zur Verfügung stehende Rechenleistung ist immer noch um Größenordnungen zu klein, um eine vollständige Lösung komplizierter technisch-naturwissenschaftlicher Probleme mit vertretbarem Aufwand durch sogenannte Simulationsrechnungen zu erhalten. Wie Vektorrechner arbeiten und bei welchen Anwendungen sie eingesetzt werden können, beschreibt Cray-Mitarbeiter Dr. Werner Butscher. Cray ist eines der beiden Unternehmen, die in der Bundesrepublik Supercomputer anbieten.

Offensichtliches Beispiel für ungenügende Rechenleistung ist die Wettervorhersage. Die das Wettergeschehen bestimmenden Gleichungen sind ein kompliziertes Zusammenspiel vieler physikalischer Bereiche wie Strömungsmechanik, Sonneneinstrahlung, Luftfeuchtigkeit und Verteilung der Wasser- und Landmassen auf der Erde. Eine Vorhersage besteht nun darin, mit Hilfe von Millionen von Meßdaten einen Anfangszustand zu definieren und durch Lösen der Modellgleichungen für die Zukunft Aussagen zu machen.

Die beschränkte Rechenleistung des verwendeten Computers und die kurze Zeitspanne, in welcher eine Vorhersage abgeschlossen sein muß, lassen nur einfache Modelle und ein grobmaschiges Netz von Gitterpunkten auf dem Globus zu. Wen wundert es bei dieser Beschränkung, wenn eine Prognose einmal nicht zutrifft? Eine zuverlässige Wettervorhersage ist jedoch für die Landwirtschaft und den Luftverkehr erforderlich, um Millionenschäden vorzubeugen und durch geeignete Flugrouten Treibstoff zu sparen.

Für derartige Anwendungen werden Größtrechner benutzt, deren typische Spitzenleistungen sich im Bereich von einigen Hundert Mflops

Vom Neumannrechner zum Supercomputer

Vergleicht man heutige Supercomputer mit einem Rechner aus dem Jahr 1950 (zum Beispiel EDSAC 1 mit 100 Rechenoperationen pro Sekunde) so stellt man fest, daß innerhalb von einem Vierteljahrhundert die Rechenleistung um den Faktor eine Million gewachsen ist. Diese rasante Entwicklung ist jedoch nur teilweise durch die höhere Schaltgeschwindigkeit neuerer Technologien erreicht worden.

So betrug die Zykluszeit von EDSAC 1 zwei Mikrosekunden während sie heute bei 12,5 Nanosekunden liegt. Somit trägt die moderne Technik nur mit einem Faktor 160 zur Leistungssteigerung bei. Der Rest ist auf Verbesserungen der Rechnerarchitektur zurückzuführen, insbesondere auf die Abkehr von dem rein sequentiellen Verarbeitungsprinzip des von Neumannschen Rechners, bei dem die verschiedenen Operationen (Speicherzugriffe, Ein-/Ausgabe, arithmetische oder logische Operationen) streng hintereinander und ohne Überlegung ablaufen.

Ein erster Schritt zur Parallelverarbeitung erfolgte durch eine Übelappung von Ein-/Ausgabeoperationen mit Rechenoperationen sowie als nächster Stufe die Überlagerung von Speicher- und Rechenoperationen verschiedener Instruktionen. Unabhängige Funktionseinheiten erlauben zusätzliche Multiplikationen oder Additionen, die an verschiedenen Daten erfolgen, gleichzeitig durchzuführen. Als weiteres Element der Leistungssteigerung ist die Segmentierung (Pipelining) der Funktionseinheiten zu nennen.

Hierunter versteht man die Zerlegung der Arbeit in unabhängige Segmente, die je einen Maschinenzyklus als Bearbeitungszeit benötigen (Fießbandprinzip). Bei den schnellsten "skalaren" Rechnern ist maximale Parallelität mit möglichst kurzer Zykluszeit gekoppelt. Das Wort "skalar" bedeutet, daß nur Instruktionen vorhanden sind, welche Manipulationen an einzelnen Zahlen durchführen. Ein solcher Rechner wird als SISD (single instruction stream single data) Rechner klassifiziert.

Wie ein Skalarcomputer

Der nächste logische Schritt ist die Einführung des Pipeline Vektorrechners, indem man den Instruktionsvorrat um sogenannte Vektoroperationen erweitert, die auf einen ganzen Satz von Zahlen (Vektoren) wirken, die alle nach dem gleichen Schema behandelt werden.

Sein Prinzip läßt sich am einfachen Beispiel der FORTRAN-Schleife

DO 1 I = 1 ,N

1 A (I) = B (I) + C (I)

erläutern. Als Pipelineoperationen kommen hier Speicherzugriffe und Addition in Betracht. Nach einer bestimmten Anlaufzeit wird ein Resultat pro Zyklus erzeugt. Die Daten "strömen" kontinuierlich durch die Fuktionseinheit Addition. Auf diese Weise läßt sich eine Größenordnung an Rechengeschwindigkeit gegenüber der rein skalaren Abarbeitung gewinnen. Selbstverständlich können auch wesentlich kompliziertere Schleifen als die oben angegebenen vom Compiler automatisch "vektorisiert" werden. Sind jedoch die Voraussetzungen für die Vektorisierung nicht gegeben, dann arbeitet ein Vektorrechner wie ein skalarer Computer. Einfache Überlegungen zeigen, daß selbst bei einem Vektorisierungsgrad von 90 Prozent eines Programms der Skalargeschwindigkeit eine wichtige Rolle zukommt.

Ein Vektorrechner wird in der Regel als SIMD-Computer bezeichnet (single instruction stream multiple data). Allerdings gibt es Bestrebungen, ihm eine eigene Klasse zuzuordnen.

Von Los Alamos bis Hollywood

Aus der Vergangenheit weiß man, daß die Einführung des Computers zunächst bei Forschungsinstituten und Universitäten erfolgte, bevor er sich lawinenartig auf fast alle Bereiche der Industrie ausbreitete. Die Erfahrung zeigt, daß der Supercomputer von gestern der Standardrechner von heute ist. Gilt dies auch für den Vektorrechner?

Zu den ersten Käufern von Vektorrechnern gehörten staatliche Forschungszentren wie die Los Alamos Scientific Laboratories oder das National Center for Atmospheric Research in Boulder, wo bessere Wettermodelle entwickelt werden konnten. Jedoch schon wenige Jahre später kann man feststellen, daß auch im kommerziellen Bereich der Supercomputer Verbreitung gefunden hat.

Bau und Betrieb eines Windkanals beispielsweise ist sehr teuer und deshalb gehen amerikanische Flugzeughersteller dazu über, beim Design von neuen Flugzeugen außer dem Windkanal auch aerodynamische Simulationsrechnungen auf einem Supercomputer durchzuführen. Das Experiment und der Rechner lassen durch einen kombinierten Einsatz viel schneller und billiger als früher das aerodynamisch optimalen Flugzeugdesign erreichen.

In der Astrophysik erlaubten Vektorrechner das zeitliche Verhalten ganzer Galaxien zu simulieren. Ähnlich aufwendige Rechnungen führt die Plasmaphysik bei der Lösung der magnetohydrodynamischen Gleichungen durch, von denen man sich Ergebnisse für zukünftige Fusionsreaktionen erhofft.

Interessant ist, daß durch diese Rechnerarchitekturen neue rein theoretische Forschungsprojekte über die Struktur paralleler mathematischer Verfahren initiiert wurden. Die Parallelität der Hardware hat also Rückwirkungen auf die Numerik.

Komplexere Modelle

Beim Flugzeugdesign werden außer den erwähnten aerodynamischen Rechnungen auch Festigkeitsrechnungen mit Hilfe von Programmen zur Strukturanalyse durchgeführt, um die gewünschte Belastbarkeit bei einem Minimum an Gewicht zu erhalten. Dieses Computer Aided Design (CAD) läßt sich selbstverständlich auch auf andere Konstruktionsprobleme (Brückenbau, Autokarosserie) anwenden. Die Verwendung von Supercomputern erlaubt, komplexere Modelle als bisher in Angriff zu nehmen.

In der Reaktorindustrie finden Supercomputer ein breites Anwendungsspektrum. Zur Auslegung des Reaktorkerns müssen umfangreiche Strukturanalysen durchgeführt werden, um die nötige Festigkeit zu gewährleisten. Simulationsrechnungen geben über die zu erwartende Wärmeabgabe des Brennstoffes Auskunft. Ferner muß die Zirkulation der Kühlflüssigkeit in den Rohrleitungen berechnet werden.

Außer dem statischen Verhalten des Reaktors (Normalzustand) ist von besonderer Wichtigkeit eine Simulationsrechnung über die zeitliche Entwicklung eines Störfalls. Besonders

bei diesem Beispiel wird klar, wie wichtig es ist, daß die durchgeführte Berechnung hinreichend genau ist, denn Experimente sind in diesem Fall wohl nicht sonderlich ratsam.

Einige Milliarden Dollar

Bei der Exploration und Ausbeutung von Erdölfeldern werden von zahlreichen Ölfirmen und geophysikalischen Instituten Superrechner eingesetzt. Durch "Rückwärtsrechnen" der seismischen Wellen können die Öllager aufgespürt werden. Hierbei müssen Millionen von Daten langwierigen Rechnungen unterzogen werden. Diese Rechnungen stellen auch höchste Anforderungen an das Ein-/Ausgabeverhalten des Rechners. Bekanntlich kann bei der Ausbeutung solcher Lager mit Hilfe von durchgepumpten Flüssigkeiten die Ausbeutungsrate erhöht werden.

Auf der Basis eines 3D-Reservoirmodells erwartet eine amerikanische Ölfirma allein bei einem einzigen Ölfeld in Alaska Mehreinnahmen von einigen Milliarden US-Dollar.

Das neueste und originellste Anwendungsgebiet für einen Supercomputer findet man bei der Firma Digital Productions in Los Angeles. Dort werden mit Hilfe eines derartigen Rechners Trickfilmszenen vollständig (das heißt ohne Zuhilfenahme von Gegenständen) simuliert. Dabei werden Millionen von Lichtstrahlen nach den Gesetzen der Optik verfolgt. Das Ergebnis dieser Simulationsrechnungen sind verblüffend realistische Bilder. Der Hauptzweck dieser Rechnungen ist völlig neue Trickszenen ohne großen Aufwand beim Film zu verwirklichen. Die Rechenzeiten für diese Simulationen sind vergleichbar mit den von wissenschaftlichen Großprojekten.

Hauptsächlich werden Supercomputer als Hintergrundrechner benutzt. Editierarbeiten sollen sinnvollerweise von Vorrechnern durchgeführt werden, um den Hauptrechner für das "number crunching" freizumachen. Es wäre somit nicht sinnvoll, einen Größtrechner mit Hunderten von Terminals zu bestücken, um ausschließlich Buchungen zu machen. Dafür sollte der Vorrechner eingesetzt werden.

Aus Gesprächen mit Wissenschaftlern ist offensichtlich, daß die gegenwärtige Leistung der Superrechner immer noch nicht ausreicht, um volle 3 D-Modelle mit hinreichender Genauigkeit zu berechnen. Aerodynamiker fordern Rechenleistungen im Gigaflopbereich, das Gleiche gilt für die Geophysik. Was hat der Anwender von zukünftigen Supercomputern zu erwarten?

Ein sinnvoller Weg, die Leistung zu steigern, ist die Einführung von noch mehr Parallelität durch parallele Prozessoren. Bei MIMD-Rechnern (multiple instruction stream multiple data stream) arbeiten zwei oder mehr Vektorrechner als Gesamtsystem. Die Prozessoren können unabhängig an verschiedenen Tasks eines Programms arbeiten. Da Superprobleme nicht nur hohe Anforderungen an die CPU, sondern auch an das Ein-/ Ausgabeverhalten stellen, sind normale Magnetplatten zu langsam. Mit schnellen Halbleiterexternspeichern erreicht man etwa den Faktor Hundert im Vergleich zur Plattengeschwindigkeit.

Ab der Mitte dieses Jahrzehnts wird die nächste Superrechnergeneration mit etwa der 12fachen Leistung heutiger Modelle zur Verfügung stehen. Diese Anlagen arbeiten mit Prozessoren mit einer Zykluszeit von vier Nanosekunden.

Ferner werden neuere Technologien (GaAs Schaltkreise und Josephsonschalter) noch kürzere Taktzeiten ermöglichen, so daß zu erwarten ist, daß die Leistung der Superrechner am Ende dieses Jahrzehnts um Größenordnungen über den derzeit verfügbaren liegen wird.

Auf diese Weise werden Simulationsrechnungen ein gutes Stück ihrem Fernziel nähergekommen sein: dem Durchführen eines "Experiments" ausschließlich auf dem Rechner. So wie der Appetit beim Essen wächst, ist allerdings zu bezweifeln daß irgendwann ein Computer allen Anwendern schnell genug erscheinen wird.