Ein Supercomputer ist ein Cray-Vektorrechner (1)

Loading

Heute wieder ein zweigeteilter Blog. Da dieser Tatbestand inzwischen schon oft der Normalfall ist, möchte ich einleitend etwas dazu schreiben. Ich beobachte bei den Kommentaren, dass sich die Leserschaft in den letzten Jahren doch deutlich verändert hat. Früher konnte ich voraussetzen, dass die Blogleser/-innen ein gewisses Basiswissen hatten, meistens sogar die Website und ihren Inhalt genau kannten, manchmal besser als ich selbst. Obwohl ich inzwischen in meine Artikel Links zur Website (← Darauf mal Klicken) zum Vertiefen einbette, stelle ich fest, dass die Vorkenntnisse bei den Lesern schwinden. Für mich bedeutet das, das ich in den Blogs selbst mehr erkläre, sonst muss ich das bei praktisch jedem Kommentar nachholen, auch wenn alle Erklärungen in ausführlicher Form in der Website nachlesen kann. Die Blogs werden dazu länger und wenn sie zu lang sind, dann teile ich sie auf. Ich versuche nicht wesentlich über 10.000 Zeichen zu kommen, auch weil ich annehme, das Leute denen schon die Websiteartikel zu lang oder komplex sind kaum die Lust haben längere Texte zu lesen. Daher heute wieder der ein längerer Artikel und morgen er Rest. Also wenn ihr euch und mir einen Gefallen tun wollt, folgt doch mal den Links im Blog. Ich selbst habe als ein Lebensmotto ein Zitat von Albert Einstein: „Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frißt.“. Das Zitat stammt aus einer Rede zur Eröffnung der ersten Funkausstellung in Berlin und Einstein bezog dies auf das Radio und seine Möglichkeiten zur Unterhaltung aber auch eben zur Wissensvermittlung. Ich denke das Motto wäre doch auch etwas für den einen oder anderen Leser. So nun zum Artikel selbst:

Ich denke jeder von uns, der ein technisches Gerät hat ist fasziniert von den Modellen die am High-end in der Leistung liegen. Also wer einen PKW hat, ist vielleicht fasziniert von einem Formel 1 Rennwagen. Aber in keinem Bereich liegt der Leistungsunterschied zwischen Alltagsgerät und Spitzenmodell so hoch wie bei Computern. Meine Faszination mit den monolithischen Cray Supercomputern begann mit einem Sonderheft der Zeitschrift „P.M.“ über eine Cray 1 die in Garching bei einem Max-Planck Institut in Garching, wo er vor allem astrophysikalische Berechnungen ausführte. Das erschien 1982/83.

Seymour Cray war nicht nur der Firmengründer und Chef der Firma „Cray Research“, er war auch der Chefingenieur und die Leistungen, die er auf dem Bereich der Computertechnik erbrachte sind legendär. Aber ich fange vielleicht mal an was ein Supercomputer überhaupt ist. Was unterscheidet einen Supercomputer von einem Großrechner, der Klasse in der Geschwindigkeit etwas niedriger angesiedelt? Nun natürlich ist es die Geschwindigkeit. Ein Großrechner leistete damals typisch 10 Millionen Instruktionen pro Sekunde – 10 MIPS. Es war aber auch das Anwendungsgebiet. Ein Großrechner wurde typisch von vielen Nutzern geteilt. Ein Großrechner in einer Bank konnte Hunderte oder Tausende von Terminals parallel betreiben, in denen Angestellte die Buchungen eintippten. Da jede dieser Aufgaben nur wenig Zeit benötigte, wurde die Computerzeit in kleine Zeitschlitze aufgeteilt und jeder Benutzer bekam einen Zeitschlitz zugeteilt, danach kam der nächste Benutzer dran. Da die Terminals die Eingaben zwischenspeicherten, merkten die Benutzer davon nichts. Ein Supercomputer arbeitete dagegen ein Programm ab, das aber mit voller Geschwindigkeit. Er nutzte also eine sehr alte Technik, das Batch-Prozessing wo die Aufgaben in einer Warteschlange landeten und nacheinander abgearbeitet wurden.

Ein Supercomputer war auch eigentlich kein kompletter Computer. Die damaligen Supercomputer von Draw wären bei einem PC so etwas wie das Mainboard, sogar noch etwas weniger. Sie bestanden eigentlich nur aus der CPU und dem Speicher. An sie musste man einen Großrechner anschließen, der die ganzen Daten entgegennahm und abspeicherte und sie mit den Programmen und Eingaben fütterte. Ich denke, dass war das, was mich damals am meisten beeindruckte: Die Cray hatte zwei Großrechner von Amdahl, jeder mit immerhin 8 MIPS nur für diese Aufgabe. Also die größten Rechner, die in der Wirtschaft arbeiteten, waren nur dazu da dem Supercomputer zuzuarbeiten. An die Großrechner wurden die Massenspeicher angeschlossen. Es gab aber auch die Möglichkeit diese direkt an den Supercomputer anzuschließen, dann gingen aber nur speziell angepasste Magnetplattenlaufwerke von Cray, mit einem Großrechner war man wohl flexibler. Auf jeden Fall brauchte man einen Computer um eine Cray überhaupt zu starten. Cray lieferte dazu eine angepasste Version eines Minicomputers von Data General mit aus. Er war das Gegenstück zur Tastatur, Bildschirm und Maus heute.

Doch wie kam Seymour Cray zu seinem damals legendären Ruf? Die Geschichte beginnt fast 20 Jahre vor meinem Interesse an den Rechnern. Dazu muss man nochmals etwas früher in die Geschichte gehen. Nachdem die ersten Computer erschienen waren, wurden neue Geräte auf die Anforderungen ausgelegt, die mögliche Käufer hatten. Das waren damals vor allem betriebswirtschaftliche Anwendungen. Computer machten die Lohnbuchhaltung, berechneten Versicherungsprämien, pflegten Bankkonten. Alle diese Anwendungen umfassten vor allem die Verarbeitung von Daten, weniger mathematische Berechnungen und wenn es Berechnungen gab, dann reichten einfache Operationen wie die Grundrechenarten. Es gab schon damals eine wissenschaftliche Nutzung von Computern, bei denen die Berechnungen viel wichtiger waren, weil sie den Hauptteil der Programme ausmachten. Das waren damals wie heute Simulationen. Die ersten Simulationen waren militärischer Natur. Man berechnete die Vorgänge, bei der Zündung von Kernwaffen – das sparte teure und die Umwelt versuchende Atomtests ein, aber auch die Optimierung der Aerodynamik von Flugzeugen. Dazu kamen naturwissenschaftliche Berechnungen. Man konnte ein Modell der thermonuklearen Reaktionen eines Sterns erstellen und berechnen wie er sich im Laufe seines Lebens verändert. Frühzeitig wurde schon die Genauigkeit der Wettervorhersage durch eine Simulation des Wetters verbessert. Aber dieser Markt war viel kleiner, denn es gab eigentlich lange Zeit nur zwei Kunden: das US-Militär und US-Spitzenforschungseinrichtungen. Bis auch Firmen wie Flugzeugbauer oder Automobilhersteller Supercomputer zur Produktentwicklung und -optimierung nutzen sollte es bis in die Achtziger Jahre dauern. Ebenso hinkten andere Industrienationen wir Deutschland in der Nutzung von schnellen Rechnern hinterher. So wurden Computer eben für die Anforderungen der Wirtschaft entwickelt. Es gab schon Ende der Fünfziger Jahre den Versuch spezielle Rechner für hohe Geschwindigkeiten zu entwickeln. Auf eine Ausschreibung der US-Energiebehörde (für die Berechnung der Vorgänge bei Kernreaktionen) wurden zwei besonders schnelle Rechner entwickelt ie mindestens zehnmal schneller als vorhandene Rechner waren. Aber beide Firmen machten Verluste, weil es eben jenseits dieser Nachfrage keine weiteren Kunden gab.

CDC 6600
CDC 6600

Mitte der sechziger Jahre trat dann Seymour Cray auf die Bildfläche. Er arbeitete als Chefingenieur bei der Firma CDC (Control Data Corporation) und er entwickelte die Cyber 6600. Die Cyber 6600 war bei ihrer Einführung 1964 der weltweit schnellste Rechner der Welt, dreimal schneller als IBM’s Topmodell. IBM hatte sich schon damals zum Marktführer bei Computern entwickelt. Und Der CEO von IBM J.R.Watson junior war darüber so erbost, dass er ein Memo schrieb, in der er sich wunderte, wie IBM von einer Firma deklassiert wurde die nur aus wenigen Angestellten bestand. Das Memo wurde bekannt als „Janitor-Memo“ weil Watson erwähnt, dass die Firma nur 34 Angestellte inklusive des Hausmeisters (Janitor) hatte. Die CDC-6600, die auch als Cyber 6600 bezeichnet wurde, war auf Geschwindigkeit optimiert. Es gab dazu einige technische Verbesserungen, die teilweise auch woanders eingesetzt wurden, aber hier zusammenarbeiteten. Der Rechner war für naturwissenschaftliche Probleme ausgelegt. Hier können -zahlenwerte sehr große Unterschiede haben. Beim Gravitationsgesetz, dass man für alle Simulationen im Universum aber auch die Berechnungen von Bahnen von Raumsonden braucht, haben wir als Eingabewerte die Gravitationskonstante (Zahlenwert: 6,67 x 10-11) und die Massen (Sonne z.B. 1,98 x 10+30) und Distanzen (1 Mrd. Km = 1012 m). Durch diese enormen Unterschiede in dem Wert kann man Berechnungen nicht wie bisher mit Festpunktarithmetik lösen bei denen man z.B. wenn es um Geldbeträge ging, mit Ganzzahlen arbeitete und vor der Ausgabe einfach das Komma um mehrere Stellen verschob. Ein interner Wert von 12345 würde z.B. für 123.45 Dollar stehen. Die Rechner mussten mit Fließkommazahlen arbeiten und mit einer Trennung von Wert und Zehnerpotenz. Also die Gravitationskonstante wurde als 667 als Wert und -11 als Potenz gespeichert. Die CDC 6600 ging noch weiter: ihr Rechenwerk arbeitete getrennt mit „normalen“ und Fließkommazahlen. Fließkommazahlen waren 60 Bit breit, normale Zahlen, mit denen auch der Speicher angesprochen wurde, nur 18 Bit breit.

Damit es noch schneller ging, wurde eine Pipeline eingeführt. Ein Befehl durchläuft bei der Ausführung mehrere Schritte und lastete bei jedem Schritt eine verschiedene Einheit in der CPU aus. Anstatt das man dies nacheinander tut, wird bei einer Pipeline bei jedem Takt ein Befehl geholt und in die Pipeline eingespeist, wo er dann die Einheiten durchläuft. Eine Pipeline mit 6 Stufen kann so bis zu 6 Befehle gleichzeitig abarbeiten und im Idealfall steigt so die Geschwindigkeit ebenfalls um den Faktor 6. Vor allem die Berechnungen brauchten aber lange, eine Einheit ist länger als einen Takt belegt. Daher erhöhte Cray noch die Anzahl der internen Einheiten, damit nicht eine komplexe Berechnung die Abarbeitung der ganzen Pipeline aufhält. Die CDC 6600 enthielt zehn Einheiten nur für die Berechnungen. Diese Architektur nennt man superskalar. Der Erfolg: Die CDC erreichte im Jahr 1964 eine Spitzenleistung von 3 MFLOPS.

Die CDC 6600 war ein Achtungserfolg, aber das galt noch für einige Jahrzehnte – kein Verkaufsschlager, es gab einfach zu wenige Abnehmer, geschätzt wurden 100 Stück produziert. Cray arbeitete noch an dem kompatiblen und leicht verbesserten Nachfolgemodell CDC 7600, scheiterte aber bei dem Entwurf eines neuen Rechners: der CDC 8600. Die CDC 8600 war einfach zu komplex, Cray baute den Rechner, wie die Vorgänger aus diskreten Transistoren und nicht aus integrierten Schaltungen auf. Er brauchte so zu viele Elemente und das Design war technisch nicht umsetzbar. 1972 verließ er CDC, um eine eigene Firma Cray Research zu gründen, damit er sich voll auf die Entwicklung von Hochleistungsrechnern konzentrieren konnte. 1976 erschien die Cray 1. Cray hatte dazugelernt und baute nun den Rechner aus integrierten Schaltungen auf. Neu war die Vektorarchitektur. Neben der schon bekannten Trennung von Ganzzahlen/Adressierung und Fließkommazahlen führte Cray die Vektoreinheiten ein. Dahinter steckt eine Analyse von vielen naturwissenschaftlichen Problemen. Bei denen werden oft Matrizen verarbeitet. Jeder Wert einer Matrix wird auf die gleiche Art verarbeitet. Eine solche Matrix für die Wettervorhersage könnte z.b. die Temperaturen eines Feldes von 1000 x 1000 km mit einem Gitter von 1 km enthalten. Anstatt jeden Wert einzeln zu verarbeiten wurden bei einer Cray 1 64 Werte auf einmal verarbeitet. Da die Recheneinheiten aber noch nicht 64-mal vorhanden waren, gab es ein Ergebnis pro Takt, die normalen Berechnungen brauchten dagegen typisch 6-7 Takte für eine Berechnung.

Soviel über die Vorgeschichte, morgen geht es dann weiter mit den Superrechnern die Cray dann in seiner eigenen Firma herausbrachte und wo er dann scheiterte.

One thought on “Ein Supercomputer ist ein Cray-Vektorrechner (1)

  1. Ohja, Cray und Vektorrechner, das waren noch Zeiten!

    Eine meiner ersten beruflichen Aufgaben (in meinem auch noch heute aktuellen Berufsgebiet) war die Portierung eines Software SAR (Synthetic Aperture Radar) Prozessors von einer Cray (vom DLR) auf eine VAX in Fortran. Das Cray Fortran hatte da recht spezielle Ein-Ausgabe Routinen, um eben gleich einen ganzen Vektor zu verarbeiten, das musste man erst einmal verstehen. Zum Glück gab es (schon?) die IMSL Libraries für die VAX, die haben dann die FFT Umsetzung doch etwas vereinfacht. Nur der sog. Corner Turn (Eine Matrixdrehung) war eine kleine Herausforderung.

    Später kam dann von der (inzwischen nicht mehr existenten) Firma ZORAN ein Vektorprozessor IC auf den Markt, der sogar mal als Modul für Transputersysteme angeboten wurde. Das Dingens wäre schon schön schnell gewesen, aber die Speicherschnittstelle hat ihn ausgebremst, sobald die Vektorlänge eine gewisse Grenze überschritten hatte (was bei den SAR Daten eigentlich immer der Fall war).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..