Im Supercomputer-Rennen zwischen Amerika und Japan:

Auch die ETA 10 läuft nicht ohne Handarbeit

16.05.1986

MÜNCHEN (CW) - Die Gerüchteküche um die ETA 10 brodelt, Ende dieses Jahres soll nun die 10-Gigaflop-Katze aus dem Sack gelassen werden. Schon in vier Jahren sollen es sogar 30 Gigaflop bei der ETA 30 sein. Überall in der Supercomputer-Branche spricht man von diesen Maschinen, fast mehr als von der Cray 2. einem weiteren Wunderkind dieser Landschaft. Doch leider ist nicht viel Genaues über den Rechner zu erfahren.

Die Firma ETA wurde im September 1983 als 100prozentige Tochter von CDC mit dem Ziel gegründet, drei Jahre später einen 10-Gigaflop-Rechner herzustellen. Der größte Teil der Cyber-205-Mannschaft wechselte zu ETA, um somit gleich auf langjährige Erfahrung auf dem Gebiet der Vektorrechner zurückgreifen zu können. Seit Januar 1985 wurde auch der gesamte Vertrieb und die Wartung der Cyber 205 in den USA an ETA übertragen. Außerhalb der USA übernimmt CDC den Vertrieb der Cyber 205 und später auch der ETA-Rechner.

So wurden die Aufgaben zwischen beiden Firmen klar definiert: CDC konzentriert sich auf die Cyber-180-Serie, die vom Minicomputer der VAX-Klasse bis in den untersten Vektorrechnerbereich angesiedelt ist. ETA befaßt sich nur mit Größtrechnern. Diese starre Trennung wirkt sich nicht immer günstig aus.

Die ETA 10 besteht aus acht Prozessoren. Jeder von ihnen ist eine technisch verbesserte und schnellere Version der Cyber 205 - mehr nicht. Die Prozessoren können jeder für sich an einem Job rechnen, sie können aber auch verschiedene Tasks eines Jobs parallel bearbeiten. Für diesen Zweck steht ein Kommunikationspuffer von 1 MB zur Verfügung. Über Puffer oder von den Prozessoren direkt kann auf die acht Ein-/Ausgabeeinheiten zugegriffen werden.

Ein Prozessor besteht aus Saklar- und Vektorteil (enthält zwei Vektorpipes) und einen eigenen Speicher von 32 MB. Pro Takt sollen zwei arithmetische Operationen durchgeführt werden können, wobei die Taktzeit fünf bis sieben Nanosekunden betragen soll, etwa ein Drittel beziehungsweise ein Viertel der Taktzeit der Cyber 205. Zunächst wird man wohl auf sieben Nanosekunden gehen und die Taktzeit dann erst später reduzieren. Schon daraus läßt sich die Beschleunigung um den Faktor drei bis vier zur 205 herausholen, ohne irgendwelche Tricks oder Verbesserungen in der Architektur. Denn auch die ETA 10 ist wieder ein Speicher-Speicher-Vektorrechner.

Volle Leistung erst bei langen Vektoren

Auf schnelle Register zur Zwischenspeicherung von Vektoren - für die sich zum Beispiel Cray, Fujitsu, Hitachi und sogar Big Blue aus Effektivitäts- und Beschleunigungsgründen entschieden haben - verzichtet ETA und nimmt damit in Kauf, daß auch dieser Rechner wie die Cyber 205 erst bei langen Vektoren seine Leistung ausspielen kann. ETA erwartet rein skalar bei dyadischen Operationen neun MFlops (Millionen Gleitkomma-Operationen pro Sekunde), bei triadischen dann 18. Als Vektoroperation sollen bei 100 Vektorelementen bei dyadischen Operationen etwa 170 MFlops bei verketteten Operationen fast das Doppelte, nämlich 320 MFlops, erreicht werden.

Bei optimal langen Vektoren sind es dann bei einer Addition 400 MFlops, und bei einer triadischen Operation (Addition und Multiplikation in einer Anweisung) sollen bei 32-Bit-Zahlen 1600 MFlops geleistet werden. Hier zeigt sich auch schon das Hauptproblem bezüglich der Maximalleistung: ETA bezieht sich auf 32-Bit-Genauigkeit. Um vergleichbar mit anderen Vektorrechnern zu bleiben, die mit 64 Bit rechnen, muß die Maximalleistung halbiert werden. Es bleiben dann nur noch fünf Gigaflops übrig, also pro Prozessor höchstens 800 MFlops. Damit liegt die ETA nicht so gewaltig über einer Cray 2 mit etwa 500 MFlops pro Prozessor. Das Ganze scheint doch mehr ein Werbegag zu sein, denn gerade technisch-wissenschaftliche Berechnungen erfordern eine hohe Rechengenauigkeit.

Eine andere wesentliche Einflußgröße bei Vektorrechnern ist die Start-up-Zeit. Diese Zeit wird benötigt, um die Vektoroperation in Gang zu setzen. Je höher sie ist, desto länger müssen die Vektoren sein, damit die Operation effektiv bleibt. Bei der ETA 10 soll sie nach Herstellerangaben etwa 10 Takte betragen und damit nur ein Fünftel der Zeit, die die Cyber 205 benötigt. Auch hier wird die Maschine also erst bei längeren Vektoren (ab 20 Elemente) effektiv.

So ganz ohne Register geht es aber auch bei der ETA nicht, mit Hilfe von Short-Stop-Registern können Ergebnisse direkt wieder in die Vektorpipes eingefüttert werden. Ein typisches Beispiel dafür ist das Skalarprodukt, wenn das Produkt von zwei Vektorkomponenten aufsummiert wird.

Zu dem oben erwähnten lokalen Speicher pro Prozessor kommt noch ein gemeinsamer Speicher, der von 512 MB bis zu 2048 MB groß sein kann. Damit ist die ETA speichermäßig scheinbar noch größer als die Cray 2 ausgestattet, doch fallen die Übertragungsraten schlechter aus. Zwischen den Vektorpipes und dem lokalen Speicher beträgt die Übertragungsrate etwa 13 Gigabyte gegenüber acht bei der Cray 2. Zwischen dem lokalen Speicher im Prozessor und dem gemeinsamen Speicher fällt sie auf nur 1,6 Gigabyte ab, ein Fünftel der Cray-Übertragungsrate. Dies entspricht etwa der Übertragungsrate des SSD (Solid Storage Device) der Cray-X/MP. Unter diesem Blickwinkel muß die Speichergröße des gemeinsamen Speichers natürlich anders beurteilt werden. Er rutscht damit etwa in die Größenordnung des I/O-Subsystems der Cray-Rechner. Die Übertragungsleistung zwischen Controller und Speicher liegt bei etwa 2 Gigabyte.

Als letzte Stufe in diesem Speicherkonzept sind die Hydra-Platten mit 1200 Gigabyte pro Platte vorgesehen. Die Übertragungsleistung pro Kanal zum gemeinsamen Speicher soll bei 12 MB liegen.

Warum spielen diese Zahlen eine so große Rolle? ETA wird den Rechner mit einem virtuellen Betriebssystem ausliefern, da innerhalb der Speicherhierarchie Daten und Programmteile ausgelagert und wieder hereingeholt werden müssen. Was Paging auf der Cyber 205 ausrichten kann, nämlich die Rechnerleistung drastisch zu reduzieren, wenn die Maschine in das Pagen kommt, ist für Cyber-205-Betreiber nichts Neues. Das kommt schon mal vor im praktischen Betrieb.

Das Betriebssystem VOS (Virtual Operating System) unterstützt einen virtuellen Speicher von 16 000 Gigabyte; für einen Normalsterblichen fast unendlich groß. Es bedeutet ja daß Programm und Datenfelder entsprechend groß werden können. So könnte man problemlos mit zweidimensionalen Feldern arbeiten, die mehr als 1 Million Wörter groß sind (bei 64-Bit-Genauigkeit).

VOS besteht eigentlich nur aus einem Kern für die Prozeß- und Dateiverwaltung und die Ein- und Ausgabeüberwachung. An diesen Kern können dann die tatsächlich nutzbaren Betriebssysteme angekoppelt werden. Man hält sich damit für die Zukunft einen Weg offen, neue Betriebssysteme auch auf der ETA zu implementieren. Bisher ist nur - dem Modetrend folgend - VSOS, das Betriebssystem der Cyber 205, vorgesehen. So kann die ETA nicht nur von der Hardwarearchitektur, sondern auch von der Software als echte Nachfolgerin der 205 gesehen werden. Jahrelange Software-Investitionen brauchen also nicht auf den Müll geworfen zu werden, man kann noch Jahre damit weiterarbeiten. Für ETA hat es auch noch den Vorteil, daß schon ein fertiges Betriebssystem existiert. Doch was ist mit NOS/VE, dem frischen Betriebssystem von CDC für die neue Cyber-180-Serie? Für CDC liegt die Zukunft in diesem System, werden und wurden doch große Investitionen in dieses System gesteckt. Doch von ETA ist nichts zu NOS/VE zu hören. Leise wird gemunkelt, daß bei starkem Druck durch die Kunden ETA auch einen NOS/VE-Zusatz zur Verfügung stellen wird - doch gibt es keine Hinweise auf die Verfügbarkeit. Vielleicht ist dann für ETA der Zug mit den alten CDC-Kunden abgefahren.

Man stelle sich vor, der Vorrechner läuft unter NOS/VE und auf dem Vektorrechner nur unter VSOS oder Unix. Damit wären dann verschiedene Systeme zu warten und zu pflegen. Ein weiterer kritischer Punkt ist das Multiprocessing, zu dem ETA einige Pläne hat: Programme sollen automatisch zerlegt und auf die Prozessoren verteilt werden. Das soll sogar auf DO-Loop-Ebene möglich sein, also bei Mikrotasking. Daneben ist vorgesehen, eine Multiprozessor-Unterprogrammbibliothek bereitzustellen. Dann kann der Anwender die Zerlegung über Unterprogrammaufrufe selbst durchführen. Auch auf der Ebene der Steuersprache ist das Multitasking vorgesehen, um Prozesse parallel ablaufen zu lassen. In einem Jahr kann man vielleicht beurteilen, wie und ob ETA alles realisiert hat. Sicherlich ist es interessant, zu vergleichen, wer seine Multiprocessing-Hausaufgaben am besten gelöst hat: ETA, Cray oder IBM.

Durch die vielen Möglichkeiten werden aber auch größere Anforderungen an den Programmierer oder Programmentwickler gestellt. Er muß sich in die völlig neuen Probleme der Prozeßdatenverarbeitung hineinknien, Prozesse auf Prozessoren verteilen und anschließend wieder synchronisieren. Das bedeutet, Vollzugsmeldungen von allen Prozessoren abzuwarten und erst dann im Programm weiterzumachen.

Soll ein Vektorrechner qualitätsmäßig beurteilt werden, so hat die Leistung des Fortran-Compilers den größten Einfluß. Ohne autovektorisierenden Compiler, der erst die Hardware einsetzt, nutzt der beste Vektorrechner nichts. Auf diesem Gebiet hatte CDC schon bei der Cyber 205 zu kämpfen; die Hardware erwies sich als "spröde" gegenüber dem Compiler. Schon DO-Loops mit variabler Schrittweite konnten nicht vektorisiert werden. Da mußte der Programmierer in Handarbeit ran und entweder über die "berühmten" Q8-Routinen oder mit Hilfe der CDC-Fortran-Vektorspracherweiterungen sein Programm umstellen. Das blieb dadurch natürlich nicht mehr portabel und konnte damit nur noch auf der Cyber 205 laufen. Dazu kamen auch noch Compilerfehler, die manchen Kunden viel Arbeit in Form von Tests und Überprüfung des Programms bescherten.

Jetzt will ETA andere Wege einschlagen. Einmal wird Kuck and Associates Inc., Champaign/Illinois, einen Preprocessor für die ETA entwickeln, eine ETA-Version des KAP. Hierzu muß man wissen, daß sich Professor Kuck und sein Team an der Universität von Illinois seit vielen Jahren mit dem Problem der Datenflußanalayse und der Datenabhängigkeit in Programmen beschäftigt. Mit Hilfe der Graphentheorie gelingt es, Programme so umzustrukturieren, daß sie besser zu vektorisieren sind. Erste Erfolge mit einem Preprocessor namens VAST hat man schon bei der Cyber 205 erzielt.

Der KAP-Preprocessor bestimmt dann bei einem vorliegenden Programm, welcher Anteil vektoriell oder sogar parallel ausgeführt werden soll. Das Programm wird dann in ein neues Fortran-Programm umgesetzt, das die Vektor- und Parallelverarbeitungssyntax des ETA-Fortran ausnutzt und so dem Compiler die Arbeit erleichtert. Die üblichen Vektorisierungsverfahren wie zum Beispiel automatische Umwandlung von Skalaren in Felder oder Integration von kleinen Unterprogrammen sind natürlich enthalten. Der Programmierer soll auch direkt mit dem Preprocessor im Dialog arbeiten können.

Das hört sich alles sehr schön an, doch wie sieht es mit Programmierfehlern aus, wenn das Programm auch noch transformiert beziehungsweise in Vektor- und Multiprozessorsyntax neu geschrieben wird. Hier ist Skepsis angebracht. ETA muß sehr leistungsfähige Debugging-Tools bereitstellen.

Welcher Compiler nun dieses modifizierte Programm übersetzt, ist derzeit nicht zu erkennen. Peritus International Inc., Santa Clara/Kalifornien, entwickelt in Zusammenarbeit mit Kuck and Ass. für ETA einen neuen Fortran-8X-Compiler - also nicht für Fortran 77 - , der die Hardware der Maschine effektiv nutzen soll. Leider ist ja bisher dieser neue Fortran-Standard, der jetzt auch die Matrix- und Vektorverarbeitung als Sprachelemente miteinschließt, immer noch nicht vom Standardisierungskomitee verabschiedet worden. Dieser neue Compiler soll auch spezielle Spracheigenschaften und Erweiterungen von CDC, Cray, DEC und IBM miteinschließen. Weiterhin soll es mit Hilfe dieses Compilers möglich sein, rechenintensivste Programmteile zu bestimmen, um dann dort durch Handarbeit die Programme zu beschleunigen. Auch bei ETA bleibt dem Programmierer die Handvektorisierung nicht erspart.