Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

IBM dringt mit der 3090-Vektoreinrichung in neue Bereiche vor:


07.03.1986 - 

Skalarteil beeinflußt wesentlich das Gesamtsystem

MÜNCHEN (CW) - Jetzt hat IBM seine 3090 mit Vektorzusatz angekündigt (siehe CW 8/86. Seite 1) und damit einen Fuß in die Tür zu den Hochleistungsrechnern gesetzt. Für viele Firmen kann dies eine Alternative zu den Jumbos von Cray, CDC oder Fujitsu sein. Aber IBM wird sich wohl nicht am Gigaflop-Rennen dieser Hersteller beteiligen.

Die Leistung der IBM-Vektoreinrichtung (andere Hersteller nennen dieses Teil Vektorprozessor) beträgt bei einer arithmetischen Operation 54 MFlops (Millionen Gleitkomma-Operationen); werden Addition und Multiplikation hintereinandergeschaltet, - im IBM-Jargon Compound-Operation, Cray nennt es Chaining - sind sogar 108 MFlops zu erreichen. Damit ist IBM Konkurrent zur Cyber 180-990 von Control Data mit 60 MFlops pro Vektorprozessor - es sind zwei für die 990 möglich - und zur Fujitsu VP 50, dem Einstiegsmodell von Amdahl und Siemens, mit etwa 142 MFlops. Natürlich sagen diese Größen nichts über die tatsächliche Leistung aus, machen aber das Marktsegment deutlich.

Wie sieht nun dieser Rechner aus, der in etwa vier Wochen an die ersten Kunden ausgeliefert werden soll? Das Grundmodell ist eine IBM 3090 Modell 200 oder 400, die jeweils zwei oder vier Skalarprozessoren besitzen. Zu jeder dieser Skalareinheiten kann dann noch eine Vektoreinrichtung geordert werden, also von einer bis vier Vektoreinrichtungen für das große Rechnermodell.

Bevor nun die Vektoreinrichtung betrachtet wird, zunächst einige Hardware-Kenngrößen der Skalarmodelle, die einen wesentlichen Einfluß auf das Gesamtsystem haben.

Dazu gehört als erstes der Zentralspeicher. Er beträgt 64 MB beim Modell 200, daneben kann optional ein Halbleiterspeicher mit 64 MB oder 128 MB gewählt werden, der von den Anwenderprogrammen genutzt werden kann; für das Modell 400 gelten 128 MB Zentral- und 128 MB oder 256 MB Erweiterungsspeicher. Von den Speichergrößen sind dies recht interessante Systeme, die es von daher mit den neuen Cray X-MP-Rechnern schon aufnehmen können, die von 8 MB bis 128 MB Speicher haben können.

Ein bisheriger Engpaß bei den Vektorrechnern, die Speichergröße - die gute alte Cray I hatte nur 8 bis 32 MB - wurde hier umschifft. Erst die Super-Jumbos CRAY 2 und ETA 10 bieten wesentlich mehr, nämlich 2 GigaByte. So lassen sich auf der IBM schon recht große Modelle oder feine Gitterstrukturen für die Simulation physikalischer Systeme im Speicher lagern.

Ein weiterer Gesichtspunkt ist die Taktzeit, sie beträgt "nur" 18,5 Nanosekunden, heute eigentlich bei Supercomputern keine besondere Leistung wenn man bedenkt, daß die neue Cray 2 alle 4,1 Nanosekunden die ETA 10 alle 5 bis 7 Nanosekunden und die Fujitsu im Vektorteil alle 7 Nanosekunden taktet. Vergleicht man sie aber mit der der Konkurrenten, so ist sie nicht so schlecht. Die CDC Cyber 180-990 hat eine Zyklus zeit von 16 Nanosekunden und der Skalarteil der VP eine von 14 Nanosekunden. Bei einer Reduzierung de Taktzeit könnte also noch problemlos eine gute Leistungssteigerung herausgeholt werden.

Bei der Vektoreinrichtung, die auch im Felde nachträglich eingebaut werden kann, wählte IBM wie CDC im Gegensatz zu anderen "reinen" Vektorrechnern eine integrierte Lösung. Zum schon existierenden Skalarteil werden das Vektorausführungselement (üblicherweise Pipeline oder Vektorpipe genannt) und ein Vektorregisterspeicher von 8 KB Größe hinzugefügt. IBM hat sich damit für eine Register-Register-Architektur Ó la Cray entschieden. Die zu verarbeitenden Zahlen werden vom Zentralspeicher in einen 64 KB großen sehr schnellen Pufferspeicher geladen. In diesem liegen auch Befehle, die je nach Art entweder zur Skalar- oder Vektoreinheit geschickt und dort ausgeführt werden. Aus diesem Zwischenspeicher heraus werden die Zahlen dann in den Registerspeicher übertragen, die arithmetische Operation wird durchgeführt und das Ergebnis wieder im Registerspeicher abgelegt. Von dort wandert es über den Pufferspeicher in den Hauptspeicher zurück.

Die Register-Register-Maschinen sind besonders dann sehr effektiv, wenn komplizierte arithmetische Operationen in der DO-Schleife durchgeführt werden. Dann kann man sich nämlich das dauernde Laden und Speichern der Daten aus und in den Zentralspeicher ersparen. Ein weiterer Vorteil besteht darin, daß zum Beispiel Daten aus dem Hauptspeicher auf die mit einer Schrittweite ungleich zugegriffen wird, im Registerspeicher in aufeinanderfolgenden Plätzen abgelegt werden können .

Ständiges Umspeichern bei variabler Schrittweite

CDC bevorzugt bei der Cyber 180-990 - ähnlich wie bei der CYBER 205 - das Speicherprinzip. Alle Daten werden aus dem Speicher in die Recheneinheiten und die Ergebnisse wieder in den Speicher geschickt. Das hat seine Vorteile bei aufeinanderfolgenden Elementen. Kommt dagegen eine variable Schrittweite vor, müssen die Elemente erst umgespeichert werden, damit sie wieder auf aufeinanderfolgenden Plätzen stehen. Dann wird auf den Vektoren gerechnet und die gesamte Prozedur des Umspeicherns muß wieder durchgeführt werden. In Fachkreisen wird das als Gather/Scather bezeichnet.

Bei der IBM können die Daten selbstverständlich auch im Zentralspeicher oder in einem Skalarregister stehen. Der Registerspeicher kann entweder 16 Vektoren mit 128 einfachgenauen Zahlen (32 Bit) oder 8 Vektoren mit 128 doppeltgenauen Zahlen enthalten. Das ist ausreichend, wenn man von drei Eingabe- und einem Ausgabevektor aus geht. Es bleiben dann noch mindestens vier Register für weitere Werte frei. Bei den Cray 1 und Cray X-MP-Systemen kommt man schließlich auch gut mit den 8 Registern von nur 64 Elementen aus. Ist die Vektorlänge größer als 128, so wird vom Betriebssystem automatisch nachgeladen.

Ein Schwachpunkt bei der Cray 1 war die Übertragungsleistung und die Zahl der Datenpfade - nämlich nur einer - zwischen Zentral- und Registerspeicher. So konnte man auch bei langen Vektoren und nur einer arithmetischen Operation gerade eben 25 MFlops aus dem Rechner holen, weil die Register nicht schnell genug nachgeladen beziehungsweise entladen werden konnten. Wie das nun bei der IBM 3090 mit Vektoreinrichtung aussieht, nämlich vom Haupt- in den Puffer- und von dort in den Registerspeicher, ist aus IBM-Unterlagen nicht ersichtlich.

Sollten aber die zwei Datenpfade zwischen Speicher und Register eine Gesamtleistung von 800 MB pro Sekunde haben, so kann die Maschine bei 64-Bit-Zahlen, zwei Operanden und einem Ergebnis maximal 33 MFlops erreichen. Beziehen sich die 800 MB - von denen man spricht - auf jeweils einen Datenpfad, so dürfe es keine großen Probleme geben, denn dann könnten auf Grund der Übertragungsleistung sogar 66 MFlops geschafft werden. Diese Frage ist leider noch offen und könnte im ersten Fall bei einfachen Operationen zu merklichen Leistungseinbußen führen.

Statistische Informationen über die Vektoreinrichtung

Die Vektoreinheit enthält neben den üblichen Einheiten Addition/logische Operation und Multiplikation/Division auch ein 128 Bit langes Vektormaskenregister, unter dessen Kontrolle Elemente eines Vektors zum Beispiel mit konstanter Schrittweite ausgewählt werden können. Solche Möglichkeiten bieten auch die japanischen Vektorrechner und die neuen Cray-X-MP-Systeme, bei den älteren X-MP- und Cray-1-Systemen hat sich das Fehlen einer solchen Einheit als Handicap herausgestellt.

Von der Anwenderseite her interessant scheint das Vektoraktivitätsregister zu sein, in dem statistische Informationen über die Nutzung der Vektoreinrichtung erfaßt wird. Es kann dann anschließend mit Hilfe von SMF (System Measurement FaciIity) ausgewertet werden, um die Vektorisierung eines Programms beurteilen zu können. Eine solche grobe Abschätzung soll sich bei den Fujitsu-Vektorrechnern als sehr praktisch erwiesen haben: Man kann die Gesamtrechenzeit mit der Zeit in der Vektoreinheit vergleichen und so die Vektorisierung beurteilen.

In der IBM-Hardware stehen 171 neue Vektorbefehle für die Gleitkomma- und binären Rechenoperationen und für binäre logische Operationen sowie zum Laden und Abspeichern zur Verfügung. Diese Befehle haben bis zu drei Operanden, die entweder in Vektor- oder irgendwelchen Skalarregister stehen oder auf die Adresse des ersten Elements im Speicher hinweisen. Die Ergebnisse werden dann entsprechend in Vektor- oder Skalarregister geschrieben. Alle Vektorbefehle sind übrigens unterbrechbar. Zum Vergleich: Die Vektorrechner von Fujitsu haben nur 83 Vektorbefehle, die Cyber 180-990 auf Grund ihrer anderen Struktur sogar nur 20 Vektorbefehle.

Leider ist noch nicht bekannt, welcher Art diese Befehle sind. Auf Grund der unterschiedlichen Speicherhierarchie verglichen mit anderen sind natürlich mehr Ladebefehle nötig.

Die Hardwarekonzepte nähern sich an

Es wird interessant sein zu beobachten, ob sich diese Zahl, insbesondere der Aufbau und die Art der Befehle, wie ein Standard durchsetzen werden. Inzwischen nähern sich die Hardwarekonzepte der wichtigsten Hersteller doch ziemlich an.

Wichtigster Teil auch eines Vektorrechners ist natürlich die Software. Konnte man sich bei der Hardware noch auf einige Fakten stützen, so ist man bei der Software nur auf Spekulationen und Herstellerinformationen angewiesen. Leider sind bisher noch keine Benchmark-Ergebnisse veröffentlicht worden, obwohl man hören kann, daß schon für einige Kunden Programme durchgerechnet worden sind.

Es gibt einen autovektorisierenden Compiler (VS Fortran Version 2, mit der Version 1 kompatibel), der interaktive Testmöglichkeiten und eine verbesserte Laufzeitbibliothek enthält. Bei der Autovektorisierung wird wenn nötig, eine Datenabhängigkeitsanalyse durchgeführt, und das Anwenderprogramm möglichst modifiziert. Programmteile, die nicht vektorisierbar sind, werden skalar optimiert. Es sollte noch bemerkt werden, daß Vektor- und Skalareinheit parallel und unabhängig voneinander arbeiten können.

Die Bibliothek enthält zusätzlich neue Vektoralgorithmen und Programme zum Multitasking. Hier findet sich eine der interessantesten Eigenschaften dieses Mehrprozessorsystems. Sind mehrere Vektoreinrichtungen vorhanden, so soll die Ausführung eines Anwenderprogramms auf mehrere Prozessoren verteilt werden können. Dieses ist natürlich eine betriebssystemtechnisch sehr anspruchsvolle Möglichkeit. Sicherlich sind noch einigen die ersten Erfahrungen von Cray mit den neuen 2-Prozessor Cray X-MP und dem Multitasking in Erinnerung. Heute klappt dies, doch stellen sich bei IBM in der Realität noch einige Fragen: Können wirklich unabhängige Teile eines Programms problemlos auf verschiedene Prozessoren verteilt werden, wie sieht die Benutzerschnittstelle aus und welche Synchronisationsmechanismen gibt es?

IBM erwartet bei einem Zweiprozessorsystem eine Steigerung um den Faktor 1,7 bis 1,8, bei einem Vierprozessorsystem um den Faktor 2,6 bis 3,3 gegenüber einer einzigen Vektoreinrichtung. Vierprozessor Cray X-MP liegt beim Multitasking zwischen 3,1 und 3,8 und beim Mikrotasking (Verteilung eines Programms durch Compiler direktiven statt des Aufrufs von Bibliotheksroutinen) bei der Matrixmultiplikation je nach Größe zwischen 3,5 und 3,96. Es bleibt also IBM noch einiges auf diesem Gebiet zu tun, um den Overhead zu reduzieren. Aber hier muß IBM ohnehin noch lernen.

Ein weiteres wichtiges Feature ist die Handvektorisierung. Erst durch manuelle Umstellung des Programms oder durch Änderung des Rechenverfahrens können wesentliche Leistungssteigerungen erzielt werden. Hierfür gibt der Compiler auch einige Hinweise, noch nichts ist aber über weitergehende Möglichkeiten bekannt. Flowtrace bei Cray oder Spy bei der Cyber 205 zeigen die Routinen mit dem größten Rechenzeitanteil auf. Eleganter hat Fujitsu dieses Problem gelöst: Es bietet einen interaktiven Vektorisierer, bei dem man sofort die Auswirkungen einer Handvektorisierung erkennen kann.

Zum Schluß ist noch die ESSL (Engineering and Scientific Subroutine Library) zu erwähnen. Die mathematischen Unterprogramme zum Beispiel aus der linearen Algebra sind hochoptimiert; sie schließen einen Teil der BLAS (Basic Linear Algebra Subroutines) ein, die inzwischen ein Quasi-Standard auf dem Gebiet der Linearen Algebra sind.

Erst Handvektorisierung bringt rechten Schwung

Welche Leistungssteigerung ist nun gegenüber der Skalareinheit Zu erwarten? Auch hier liegen keine praktischen Erfahrungen vor. IBM erwartet einen Faktor von 1,5 bis 3, bei den ausgereizten Unterprogrammen der ESSL sogar einen Faktor 4 bis 8 (Matrixzerlegung und 2D-Fouriertransformation). Diese Angaben sind aber mit Vorsicht zu genießen, denn zu oft haben sich Vektorrechner bei autovektorisierten Anwenderprogrammen als schwach auf der Brust" gezeigt. Erst die Handvektorisierung brachte sie in Schwung.

Die skalare Leistung der 3090 soll etwa um den Faktor 2,6 besser als eine IBM 3081-KX sein.

Von der Architektur her scheint das neue System recht interessant zu sein. Viele Schwachstellen anderer Vektorrechner konnten bei der Konzeption vermieden werden. Da IBM mit diesem Rechner ja auch nicht auf dem Supercomputermarkt (Cray, ETA 10) drängen will, scheint ein guter Kompromiß gefunden zu sein. Für "normale" Probleme dürfte er ausreichen.

Software, Betriebssystem, Compiler und Programmbibliothek müssen sehr leistungsfähig und fehlerfrei sein, sonst wird es mit dem Verkauf Schwierigkeiten geben. Solche Problemfälle sind ja auf dem Gebiet de Vektorrechner bekannt, haben sich bei potentiellen Anwendern auch sehr schnell herumgesprochen und der erwartete Markterfolg blieb aus.