Bisher hatten Physiker meistens Schwierigkeiten, Mammutprobleme einem Rechenzentrum
aufzugeben, da sie damit die herkömmlichen Maschinen vollstopfen. Mit der Erweiterung des Computer-
Horizonts ist es jetzt plötzlich möglich geworden, Aufgaben zu lösen, vor denen man noch vor einem Jahr
kapitulieren mußte. Die aufwendigen Berechnungen für langfristige Wetter und Klimavorhersagen, die auf
ständig sich ändernden Rohdaten beruhen, sind beispielsweise erst möglich, seit man die komplizierten
dynamischen Simulationsmodelle in Echtzeit durchrechnen kann - bekanntlich wartet das Wetter nicht auf
den Computer. Anwendungen für Supercomputer gibt es etwa auch in der Geologie. In der Reaktortechnik,
wo der Rechner die Analyse und Kontrollfunktionen des gesamten Reaktorkerns übernehmen kann, hält
diese neue Technik ebenfalls Einzug.
800 Millionen Operationen lassen sich auf einem Computer rechnen. Die neueste Maschine von
Control Data, die Cyber 205, schafft das im Idealfall in einer einzigen Sekunde. Konrad Zuses Z4, vor 40
Jahren einer der ersten programmierbaren Rechner überhaupt, hätte dafür mehr als acht Jahrzehnte
gebraucht! Ihre fast unvorstellbare Leistungsfähigkeit verdanken die schnellsten Großcomputer nicht nur
dem Schritt von der Mechanik zur Elektronik und der zunehmenden Dichte, mit der die Schaltungen auf
Silizium-Chips gepackt werden, sondern auch dem neuen Konzept des Vektorprozessors, der vielen
technisch-wissenschaftlichen Problemstellungen besser angepaßt ist als der konventionelle skalare
Prozessor, den es in diesen Supermaschinen natürlich auch noch gibt.
Vektoren sind aneinandergereihte Mengen von Datenelementen. Ein Beispiel dafür ist das
Zahlentrippel (2.5, 0.004, 735.28). Wenn man die drei Zahlen mit x(1), x(2) und x(3) bezeichnet, kann man
für den entsprechenden Vektor schreiben x = (x(1), x(2), x(3)). Ein großer Teil der aufwendigen
Rechnungen im technisch-wissenschaftlichen Bereich enthält mehrdimensionale Größen, welche in Form
von Vektoren dargestellt werden. Die neue Computerarchitektur ist solchen Anwendungen deshalb optimal
angepaßt.
An einem Beispiel läßt sich am einfachsten erklären, was den Vektor-Prozessor unterscheidet.
Mathematisch addiert man zwei Vektoren zueinander, indem man die entsprechenden Komponenten
addiert. Will man zwei Vektoren a und b, die aus je 500 Zahlen (a(1), . .., a(500)) und (b(1), ..., b(500))
bestehen, zueinander addieren, so machen das konventionelle Computer wie folgt (siehe Figur 1): Die
ersten beiden Zahlen a(1) und b(1) werden aus dem Speicher geholt, addiert und das Resultat anschließend
als c(1) = a(1) + b(1) wieder abgespeichert. Dann wird der Index von 1 auf 2 erhöht und das Ganze beginnt
von vorn mit den Zahlen a(2) und b(2). Solange der Index die Zahl 500 nicht überschreitet wird das Spiel
wiederholt. Es wird also folgende Programmschleife 500mal durchlaufen:
Während der Skalarprozessor also jede der 500 Rechnungen separat behandelt, werden im
Vektorprozessor aneinandergereihte Mengen von Datenelementen, wie es die Vektoren a und b sind, als
Ganzes verarbeitet. Von den verschiedenen Lösungsmöglichkeiten sei hier diejenige der Cyber-Maschine
stellvertretend erläutert.
Das Prinzip ist in Figur 2 dargestellt. Wir verwenden dasselbe Beispiel wie oben. Die 500
Zahlenpaare a(i) und b(i), die addiert werden sollen, werden laufend vom Speicher in einen Eingangspuffer
und von dort in eine sogenannte Pipeline geschickt, wo sie addiert werden. Die Ergebnisse gelangen dann
über einen Ausgangspuffer in den Speicher. Wichtig ist, daß alles gleichzeitig und kontinuierlich stattfindet.
Das Prinzip dieses "streaming" kann mit dem Betrieb eines Gartenschlauchs verglichen werden.
Wenn man die Ausführungszeiten vergleicht, die der skalare Prozessor und der Vektorprozessor
desselben Computers (selbst die neusten Großcomputer besitzen neben dem Vektorprozessor auch noch
einen traditionellen Skalarprozessor) für die oben beschriebene Vektoraddition brauchen, wird sofort klar,
was das neue Konzept an Geschwindigkeitszuwachs bringt. Die fünf Instruktionen, die der skalare
Prozessor bei jedem Schleifendurchgang ausführt, brauchen zusammen 21 Maschinenzyklen zu je 20
Nanosekunden. Die Addition der Vektoren a und b dauert also 500 x 21 Maschinenzyklen oder 0,21
Millisekunden.
Der Vektorprozessor braucht eine Vorbereitungszeit von ungefähr 50 Maschinenzyklen. Nach 14
weiteren Zyklen "Anlaufszeit" sind die ersten vier Resultate c(1), c(2), c(3), c(4) im Ausgangspuffer, c(5)
und c(6) bereits berechnet in der Pipeline, a(7) . . . a(10) und b(7) . . . b(10) ebenfalls in der Pipeline, und
a(11) . . . a(14) und b(11) . . . b(14) im Eingangspuffer (siehe Figur 2). Alle anderen Zahlen warten im
Speicher, bis sie an der Reihe sind. Jeder weitere Maschinenzyklus produziert ein neues Resultat, so daß
die Aufgabe nach ungefähr 565 Zyklen oder 0,01 Millisekunden gelöst ist.
Der Vektorprozessor ist also in unserem Beispiel fast 20mal schneller als der skalare. Nur bei
ganz kleinen Vektoren lohnt sich die Vorbereitungs- und Anlaufzeit von ungefähr 65 Zyklen nicht. Bei sehr
großen hingegen (in der Cyber-Maschine kann ein Vektor maximal 65535 Zahlen enthalten) fällt sie
überhaupt nicht mehr ins Gewicht. Der Computer liefert dann durchschnittlich bei jedem Maschinenzyklus
ein Resultat. Pro Sekunde sind das 50 Millionen Rechenergebnisse von Gleitkommazahlen (50 Magflops)
bei einer Genauigkeit von 64 Bit. Benötigt man nur 32 Bit Genauigkeit, verdoppelt sich dank einem
raffinierten Trick die Geschwindigkeit auf 100 Megaflops. Der neue Computer schafft aber nicht nur
Additionen so schnell, sondern er kann sogar gleichzeitig noch eine Multiplikation ausführen.
Solche Supermaschinen haben natürlich nur einen Sinn, wenn man ihre Möglichkeiten von
ausschöpfen kann. Anstatt einfach draufloszuprogrammieren oder herkömmliche Programme für den
Vektorprozessor umzuschreiben, sollte sich der Anwender eines solchen Computers schon ein paar
grundsätzliche Gedanken machen. Erstens einmal ist der Einsatz eines Vektorrechners nicht für alle
Probleme gleich gut geeignet - man schießt schließlich auch nicht mit Kanonen auf Spatzen. Zweitens sollte
der Programmierer, wenn er diesen brauchen will, dafür sorgen, daß der Vektorprozessor ungefähr gleich
stark ausgelastet ist wie der simultan laufende skalare. Unter Umständen lohnt es sich sogar, nach ganz
neuen Algorithmen zu suchen, die auf das Vektorkonzept optimiert sind. Die Ergebnisse, die man so
erzielen kann, sind erstaunlich. So erledigt der Cyber 205 zum Beispiel die Auflösung eines
Gleichungssystems von 1000 Gleichungen in 1000 Unbekannten in der extrem kurzen Zeit von 2,5
Sekunden.
*Felix Weber, 8044 Gockhausen, Schweiz.