parallele rechnerarchitektur, ss 2006 a. strey, universität ulm kapitel 7 : vektorrechner 1 kapitel...

20
Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm Kapitel 7 : Vektorrechner 1 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

Upload: hedwig-nader

Post on 05-Apr-2015

108 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm Kapitel 7 : Vektorrechner 1 Kapitel 7 Vektorrechner und Höchstleistungsrechner Architektur

Parallele Rechnerarchitektur, SS 2006A. Strey, Universität Ulm

Kapitel 7 : Vektorrechner1

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

Page 2: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm Kapitel 7 : Vektorrechner 1 Kapitel 7 Vektorrechner und Höchstleistungsrechner Architektur

Parallele Rechnerarchitektur, SS 2006A. Strey, Universität Ulm

Kapitel 7 : Vektorrechner2

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

Page 3: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm Kapitel 7 : Vektorrechner 1 Kapitel 7 Vektorrechner und Höchstleistungsrechner Architektur

Parallele Rechnerarchitektur, SS 2006A. Strey, Universität Ulm

Kapitel 7 : Vektorrechner3

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

Page 4: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm Kapitel 7 : Vektorrechner 1 Kapitel 7 Vektorrechner und Höchstleistungsrechner Architektur

Parallele Rechnerarchitektur, SS 2006A. Strey, Universität Ulm

Kapitel 7 : Vektorrechner4

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)

Page 5: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm Kapitel 7 : Vektorrechner 1 Kapitel 7 Vektorrechner und Höchstleistungsrechner Architektur

Parallele Rechnerarchitektur, SS 2006A. Strey, Universität Ulm

Kapitel 7 : Vektorrechner5

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 m Speicherbä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“

Page 6: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm Kapitel 7 : Vektorrechner 1 Kapitel 7 Vektorrechner und Höchstleistungsrechner Architektur

Parallele Rechnerarchitektur, SS 2006A. Strey, Universität Ulm

Kapitel 7 : Vektorrechner6

Vektorrechner: Programmierung• Maschinen-Programmierung durch Vektor-Instruktionen (im

allgemeinen von Compiler automatisch generiert), z.B.: VLOAD A, V1VLOAD B, V2VADD V1, V2, V3VSTORE 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

Page 7: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm Kapitel 7 : Vektorrechner 1 Kapitel 7 Vektorrechner und Höchstleistungsrechner Architektur

Parallele Rechnerarchitektur, SS 2006A. Strey, Universität Ulm

Kapitel 7 : Vektorrechner7

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

Page 8: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm Kapitel 7 : Vektorrechner 1 Kapitel 7 Vektorrechner und Höchstleistungsrechner Architektur

Parallele Rechnerarchitektur, SS 2006A. Strey, Universität Ulm

Kapitel 7 : Vektorrechner8

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

Page 9: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm Kapitel 7 : Vektorrechner 1 Kapitel 7 Vektorrechner und Höchstleistungsrechner Architektur

Parallele Rechnerarchitektur, SS 2006A. Strey, Universität Ulm

Kapitel 7 : Vektorrechner9

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

Page 10: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm Kapitel 7 : Vektorrechner 1 Kapitel 7 Vektorrechner und Höchstleistungsrechner Architektur

Parallele Rechnerarchitektur, SS 2006A. Strey, Universität Ulm

Kapitel 7 : Vektorrechner10

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 überein 2D-Torus Netzwerk zusammengeschaltet werden

Page 11: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm Kapitel 7 : Vektorrechner 1 Kapitel 7 Vektorrechner und Höchstleistungsrechner Architektur

Parallele Rechnerarchitektur, SS 2006A. Strey, Universität Ulm

Kapitel 7 : Vektorrechner11

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)

Page 12: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm Kapitel 7 : Vektorrechner 1 Kapitel 7 Vektorrechner und Höchstleistungsrechner Architektur

Parallele Rechnerarchitektur, SS 2006A. Strey, Universität Ulm

Kapitel 7 : Vektorrechner12

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

Page 13: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm Kapitel 7 : Vektorrechner 1 Kapitel 7 Vektorrechner und Höchstleistungsrechner Architektur

Parallele Rechnerarchitektur, SS 2006A. Strey, Universität Ulm

Kapitel 7 : Vektorrechner13

Beispiel 2: NEC SX-8• Architektur einer CPU

Page 14: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm Kapitel 7 : Vektorrechner 1 Kapitel 7 Vektorrechner und Höchstleistungsrechner Architektur

Parallele Rechnerarchitektur, SS 2006A. Strey, Universität Ulm

Kapitel 7 : Vektorrechner14

Beispiel 2: NEC SX-8 (Forts.)• Systemarchitektur eines Knoten mit CPU2:

Page 15: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm Kapitel 7 : Vektorrechner 1 Kapitel 7 Vektorrechner und Höchstleistungsrechner Architektur

Parallele Rechnerarchitektur, SS 2006A. Strey, Universität Ulm

Kapitel 7 : Vektorrechner15

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

Page 16: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm Kapitel 7 : Vektorrechner 1 Kapitel 7 Vektorrechner und Höchstleistungsrechner Architektur

Parallele Rechnerarchitektur, SS 2006A. Strey, Universität Ulm

Kapitel 7 : Vektorrechner16

IBM Blue Gene (Forts.)• hierarchischer Aufbau des Supercomputers IBM Blue Gene/L:

Page 17: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm Kapitel 7 : Vektorrechner 1 Kapitel 7 Vektorrechner und Höchstleistungsrechner Architektur

Parallele Rechnerarchitektur, SS 2006A. Strey, Universität Ulm

Kapitel 7 : Vektorrechner17

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

Page 18: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm Kapitel 7 : Vektorrechner 1 Kapitel 7 Vektorrechner und Höchstleistungsrechner Architektur

Parallele Rechnerarchitektur, SS 2006A. Strey, Universität Ulm

Kapitel 7 : Vektorrechner18

IBM Blue Gene (Forts.)• Aufbau eines

Chips:

Page 19: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm Kapitel 7 : Vektorrechner 1 Kapitel 7 Vektorrechner und Höchstleistungsrechner Architektur

Parallele Rechnerarchitektur, SS 2006A. Strey, Universität Ulm

Kapitel 7 : Vektorrechner19

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

Page 20: Parallele Rechnerarchitektur, SS 2006 A. Strey, Universität Ulm Kapitel 7 : Vektorrechner 1 Kapitel 7 Vektorrechner und Höchstleistungsrechner Architektur

Parallele Rechnerarchitektur, SS 2006A. Strey, Universität Ulm

Kapitel 7 : Vektorrechner20

IBM Blue Gene (Forts.)