200 likes | 319 Views
Kapitel 7. Vektorrechner und Höchstleistungsrechner Architektur von Vektoreinheiten Speicherkopplung mehrerer Vektoreinheiten Beispiel: Cray X1 Netzwerkkopplung speichergekoppelter Vektorreinheiten Beispiel: NEC SX-8 Netzwerkkopplung von SMPs Alternative: IBM Blue Gene. Vektorrechner.
E N D
Kapitel 7 Vektorrechner und Höchstleistungsrechner • Architektur von Vektoreinheiten • Speicherkopplung mehrerer Vektoreinheiten • Beispiel: Cray X1 • Netzwerkkopplung speichergekoppelter Vektorreinheiten • Beispiel: NEC SX-8 • Netzwerkkopplung von SMPs • Alternative: IBM Blue Gene Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm
Vektorrechner • Architektur optimiert für arithmetische Operationen auf großen Vektoren aus Gleitkommazahlen • zentrales Element ist die Vektoreinheit (auch bezeichnet als VPU = „Vector Processing Unit“) • VPU basiert auf arithmetischen Pipelines: • liefern (nach Ablauf einer Startphase) stets 1 Gleitkomma-Resultat bzw. 1 Integer-Resultat je Takt! • oft viele Stufen je Pipeline (typisch 2-16 Stufen, je nach arith. Operation) • zunächst ausschließliche Verwendung von statischen Speichern • hergestellt in jeweils schnellster verfügbarer Technologie (ECL, GaAs Flüssigkeitskühlung!) Beispiel. aus 1975: 80 MHz Cray-1, 0.1 MHz Intel 8008 Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm
Vektorrechner: Arithmetik-Pipeline • Beispiel: Vektor-Addition bei Gleitkommazahlen • Vorbereitung: Laden von zwei Vektorelementen a[i] und b[i] • Phase 1: Exponentenvergleich • Phase 2: Exponentenanpassung • Phase 3: Addition der Mantissen • Phase 4: Normalisieren • Phase 5: Fehlerkontrolle • Phase 6: Runden des Ergebnisses • Nachbereitung: Speichern des Ergebniselementes c[i] • jede Pipeline-Phase benötigt die gleiche Zeit τ, bei k Phasen liegt erstes Ergebnis nach Zeit k τ vor Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm
Vektorrechner: Architektur Beispiel: VPU der Cray-1 • Taktzykluszeit: 12.5 ns • acht 64-Bit Datenregister für skalare Variablen • acht Vektorregister für jeweils bis zu 64 Vektorkomponenten zu 64 bit • 12 arithmetische Pipelines: • 3 für Gleitkomma-Vektoren • 3 für Integer-Vektoren • 4 für skalare Berechnungen • 2 für Adress-Rechnungen (mit 1 bis 14 Pipeline-Stufen) Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm
Vektorrechner: Speicherarchitektur • Speichereinheit muß Daten in ausreichend hoher Geschwindig-keit bereitstellen, um VPU auszulasten: • Speichereinheit ist i.a. auch als Pipeline realisiert, die zudem unabhängig von Arithmetik-Pipeline arbeitet ( Vorbereitung der Folgeoperation simultan zur aktueller Vektoroperation!) • zur Realisierung einer höheren Speicherbandbreite ist der Speicher in mSpeicherbänke aufgeteilt; Vektorelement i in Bank i mod m • hohe Latenzzeit nur bei Initialisierung der Speicher-Pipeline, danach kann ein Datum je Takt gelesen/geschrieben werden • zwei Arbeitsmodi: • Zugriff auf „unit-stride data“ • Zugriff auf „non-unit-stride data“ • statt Speicherung von Zwischenergebnissen ist häufig auch Hintereinanderausführung mehrerer arithmetischer Operationen („Chaining“) möglich, z.B. für „Multiply&Accumulate“ Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm
Vektorrechner: Programmierung • Maschinen-Programmierung durch Vektor-Instruktionen (im allgemeinen von Compiler automatisch generiert), z.B.: VLOAD A, V1 VLOAD B, V2 VADD V1, V2, V3 VSTORE V3,C • jeder Befehl ist äquivalent zu einer Schleife über alle Elemente in einem Vektorregister • Operationen auf Vektorelementen müssen unabhängig sein (ansonsten ist keine Pipeline verwendbar !) • Hochsprachen-Compiler (z.B. für High Performance Fortran) • muß Operanden in Schleifen auf Unabhängigkeit testen bzw. durch Programmtransformation Unabhängigkeit erreichen ( Vektorisierung) • berücksichtigt hierbei manuelle Hilfestellungen ( Direktive) • muß Vektorregister zuteilen und lange Vektoren in Streifen einteilen Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm
Vektorrechner: Leistung • Leistung bei voller Pipeline nur abhängig nur von Taktzyklus und somit von Technologie • Zeit für eine Operation auf Vektor mit n Komponenten: t = (Sp + k) τ + (n 1) τ = (Sp + n + k 1) τ (Sp = zusätzliche konstante Startup-Zeit für Initialisierung der k-stufigen Pipeline) • Leistungsmaße: Rn : Leistung bei Vektorlänge n R: Leistung bei unendlich langem Vektor n½ : Vektorlänge, die für eine Leistung von R/2 benötigt wird Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm
Vektorrechner: Weiterentwicklung • weitere Verkürzung der Taktzykluszeiten (z.B. Cray-2: 4.1 ns, Cray-3: 2.1 ns, Cray X1: 1.25 ns) • Erhöhung der Anzahl an Pipeline-Funktionseinheiten und Speichereinheiten in einer VPU • Speicherung einer höheren Anzahl von Vektorkomponenten je Vektorregister (bis zu 512) • Unterstützung größerer Adressräume • zeitweise waren auch Maschinen ohne Vektorregister verfügbar („Memory-Memory VPUs“, Bsp. ETA-10) • Einsatz von dynamischen Speichern und Caches ( höhere Integrationsdichte, geringerer Energiebedarf, geringere Kosten) • VPU kombiniert mit RISC-Prozessor für skalare Operationen • Verwendung von CMOS-Technologie Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm
Vektorrechner: Ausblick • eine weitere Erhöhung der Leistung eines Vektorrechners ist möglich durch 1) speichergekoppelte VPUs • Verwendung mehrerer VPUs • Kopplung von VPUs und Speichermodulen über ein schnelles Netzwerk mit hoher Bandbreite und möglichst wenig Blockierungen, i.a. wird hier ein Crossbar eingestzt 2) Netzwerkkopplung speichergekoppelter VPUs • vollständiger Crossbar ist bei vielen VPUs zu aufwendig • statt dessen werden mehrere Knoten, die intern aus speichergekoppelten VPUs bestehen, über ein schnelles Netzwerk gekoppelt • ermöglicht sehr hohe Anzahl von VPUs Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm
Beispiel 1: Cray X1 • Beispiel eines erst kürzlich (2003) vorgestellten Vektorrechners • Architektur einer VPU: • 4 skalare RISC CPUs mit jeweils 2 Vektor-Pipelines • 4 Caches mit jeweils 0.5 MByte, über Crossbar mit CPUs/Vektor-Pipelines gekoppelt, max. Cache-Bandbreite: 76.8 GByte/s • Taktfrequenz: 800 MHz • max. Leistung: 12.8 GFlops, max. Speicher-Bandbreite: 34,1 GByte/s • Systemarchitektur: • Knoten („node“) besteht aus 4 VPUs (max. 51 GFlops), 16 RDRAM Speichermodule • insgesamt max. 1024 Knoten (max. 52 TFlops) können über ein 2D-Torus Netzwerk zusammengeschaltet werden Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm
Vektorrechner: Ausblick • Vektorrechner haben in letzter Zeit an Bedeutung verloren, da in Vergleich zu anderen Architekturen ihr Preis durch Einsatz von Spezialkomponenten wesentlich höher ist • trotzdem sind viele Vektorrechner in Rechenzentren installiert: • NEC SX-6 (1 bis 1024 VPUs, 2 ns Takt, max. 8 GFlops je VPU) • Fujitsu VPP5000 (4 bis 128 VPUs, 3.3 ns Takt, max. 9.6 GFlops je VPU) • CRAY X1 (bis zu 4096 VPUs, 1.25 ns Takt, max. 12.8 GFlops je VPU) Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm
Beispiel 2: NEC SX-8 • speichergekoppelter Vektorrechner • installiert z.B. am HLRS Stuttgart, Platz 48 der aktuellen Top 500 • Besonderheiten: • optische Verbindungswege zur Reduktion des Kabelwirrwarrs • vier arithmetische Pipelines, auch eine für Division und Quadratwurzel • Taktfrequenz 2 GHz • jede Pipeline ist 4-fach aufgebaut, d.h. produziert 4 Ergebnisse je takt Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm
Beispiel 2: NEC SX-8 • Architektur einer CPU Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm
Beispiel 2: NEC SX-8 (Forts.) • Systemarchitektur eines Knoten mit CPU2: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm
IBM Blue Gene • Forschungsprojekt von IBM, Lawrence Liverpool National Laboratory (LNNL) und des US Department of Energy • Forschungsziele: Entwicklung energieeffizienter massiv paralleler Rechner, Simulation von Molekülen und Proteinen • mehrere Systeme wurden gebaut, z.B. Blue Gene/L (LLNL) , Blue Gene/P, Blue Gene/Q • Leistung Blue Gene/L: Peak Performance 360 TFlops, Linpack Performance 280 TFlops • Blue Gene/L besteht aus 65536 Rechenknoten Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm
IBM Blue Gene (Forts.) • hierarchischer Aufbau • des Supercomputers • IBM Blue Gene/L: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm
IBM Blue Gene (Forts.) • Rechenknoten besteht aus speziell entworfenem Chip: • Chipfläche 11×11 mm, 474 Pins, 1.5 Volt • enthält komplette „System-on-Chip“ Architektur • zwei eingebetteten PowerPC 440 Kerne 700 MHz, 7-stufige Pipeline, jeweils 2 FPUs mit FMA-Befehl max. Leistung von 5.6 GFlops je Knoten • keine Cache-Kohärenz • 4 MByte interner Speicher, auch als L3 Cache einsetzbar • DRAM Controller für externen Speicher • 12 Kommunikationskanäle (1-Bit) zu den 6 Nachbarknoten, 6 Kommunikationskanäle (2 Bit) für Baum-Netzwerk, 4 Interruptkanäle • Leistungsaufnahme nur 13 Watt ermöglicht hohe Packungsdichte: 1024 Knoten in einem 19 Zoll Rack • E/A-Knoten (unter Linux) stellen Verbindung zum Ethernet Netzwerk dar Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm
IBM Blue Gene (Forts.) • Aufbau eines Chips: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm
IBM Blue Gene (Forts.) • Systemarchitektur besteht aus drei Netzwerken: 1) ein 3D Torus-Netzwerk mit max. 32x32x64 Knoten • zum Datenaustausch zwischen den Knoten • minimale, adaptive, „Virtual Cut Through“ Routing-Strategie, direkt in Hardware realisiert • serielle 1-Bit Verbindungskanäle mit 1.4 Gbit/s (unidirektional) zu den 6 Nachbarknoten, Latenzzeit durch Knoten von 69 ns 2) ein Baum-Netzwerk („collective network“) • zur Realisierung von Broadcast-Operationen • zur Realisierung von Reduktionen (globale Summe, Min, Max, ...) • 2-Bit Verbindungskanäle mit 2.8 GBit/s, Gesamtlatenzzeit ca. 2.5 s 3) ein Interrupt-Netzwerk • auch zur schnellen Barrieren-Synchrosiation • Gesamtlatenzzeit 1.3 s Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm
IBM Blue Gene (Forts.) Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm