-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 1 of 75
PraktikumWissenschaftliches Rechnen
Praktikum Wissenschaftliches Rechnen
Performance-optimized Programming
Scientific Computing in Computer ScienceProf. Dr. H.-J. Bungartz
Dipl.-Geophys. Markus Brenk,[email protected]. Ralf [email protected]
2. November 2005
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 2 of 75
PraktikumWissenschaftliches Rechnen
1. Konzept des Praktikums
• Einführung und grundlegende Fertigkeiten
– Laufzeitoptimierung (Pipeline, Cache)
– Programmieren auf Shared-Memory Rechnern (OpenMP)
– Programmieren auf Distributed-Memory Rechnern (MPI)
– vier Übungsblätter; teilweise theoretische Aufgaben; engeVorgaben
• Projekt orientierte Aufgabe(n)
– freie Aufgabenstellung; Vertiefung und Anwendung des Er-lernten; wenig Vorgaben; eigenverantwortliche Arbeiten
www http://www5.in.tum.de/lehre/praktika/wissprak/WS05/
http://www5.in.tum.de/lehre/praktika/wissprak/WS05/
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 3 of 75
PraktikumWissenschaftliches Rechnen
2. Ebenen der Parallelität
Parallele Programme lassen sich nach der Granularität ihre Paral-lelität klassifizieren und Rechnertypen gegenüberstellen, welchendurch ihre Hardware die entsprechende Ebene unterstützen.
• Suboperationsebene
– Vektorrechner (z. B. NEC-SX, Cray-SV)
– Feldrechner (z. B. MasPar-Rechner)
– SSE[1− 3]– . . .
• Anweisungsebene
– Superskalarrechner (z. B. Workstation)
– VLIW-Rechner (very long instruktion word) (z. B. Hitachi-SR)
– . . .
ILP – Instruction Level Parallelism
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 4 of 75
PraktikumWissenschaftliches Rechnen
• Blockebene (Threads)
– Shared-Memory-Rechner (z. B. SUN-UltraSparc, SGI-Origin)
– . . .
• Prozessebene
– Distributed-Memory-Rechner (Cray-T3E, IBM-SP)
– . . .
• Programmebene
– Workstation-Cluster
– Grid-Computer
– . . .
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 5 of 75
PraktikumWissenschaftliches Rechnen
3. Klassifikation nach Flynn
• Betrachte: Befehlsstrom und Datenstrom
• Ein Rechner bearbeitet zu einem Zeitpunkt einen oder mehrereBefehle
• Ein Rechner bearbeitet zu einem Zeitpunkt einen oder mehrereDatenwert
SISD SIMDEinprozessorsystem Vektorrechner
Feldrechner
MISD MIMDleer Multiprozessorsysteme
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 6 of 75
PraktikumWissenschaftliches Rechnen
4. Aufbau eines Vektorrechner
4.1. Was ist ein Vektorrechner?
• Einen Rechner mit pipelineartig aufgebautem/n Rechenwerk/en,der Arrays von Gleitpunktzahlen verarbeitet.
• Vektor = Array (Feld) von Gleitpunktzahlen.
• Vektorbefehle werden auf ganze Vektoren angewendet, die inVektorregistern gespeichert sind.
• Ein Vektorrechner enthält neben der Vektoreinheit auch nocheine oder mehrere Skalareinheiten. Dort werden die skalarenBefehle parallel zu den Vektorbefehlen ausgeführt.
• Ein „klassischer“ Vektorrechner besitzt keinen Cache. Die Da-ten werden über Load- bzw. Store-Pipelines direkt in die Vektor-register geladen. Der dazu erforderliche schnelle Zugriff auf denHauptspeicher wird durch Speicherverschränkung (interleavedmemory) realisiert.
Beispiel: CRAY T90 32 doppelt ausgelegten Prozessoren mitzwei Load-Pipelines, einer Store-Pipeline und einer i/o Einheitdie auf den Speicher zugreifen.
32(proc.) · 8(ref.) ∗ 4cycles(bbt.) ⇒ 1024banks(SSRAM)
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 7 of 75
PraktikumWissenschaftliches Rechnen
4.2. Prinzipskizze eines Vektorprozessors
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 8 of 75
PraktikumWissenschaftliches Rechnen
4.3. Pipelining
• Instruktion Pipelining
Befehlsausführung ohne und mit Pipelining
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 9 of 75
PraktikumWissenschaftliches Rechnen
• Arithmetisches Pipelining Beispiel: Addition in vier Schritten
– Ein Paar Gleitpunktzahlen aus dem Vektorregister laden,
– die Exponenten vergleichen und eine der Mantissen ver-schieben,
– die ausgerichtetem Mantissen addieren und
– das Ergebnis normalisieren und in ein Register zurückschrei-ben.
Zeitl. Verlauf einer Vektoroperation in einer Pipeline
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 10 of 75
PraktikumWissenschaftliches Rechnen
• Software Pipelining
Die einzelnen Schleifeniterationen werden überlappt ausgeführt.Jede Zeile entspricht einem VLIW.
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 11 of 75
PraktikumWissenschaftliches Rechnen
for(i=0;i
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 12 of 75
PraktikumWissenschaftliches Rechnen
5. Arithm. Operationen und Speicherzugriffe
Bei einem Vektorrechner können nicht nur die arithmetischen Pi-pelines verkettet werden, sondern diese können wiederum mit denLoad- bzw. Store-Pipelines verkettet werden. Somit ist ein kontinu-ierlicher Datenstrom vom Speicher zum Prozessor und zurück reali-sierbar.Können die Daten in der beschriebenen Weise geladen, verarbeitetund gespeichert werden, so erreicht der Rechner seine maximaleLeistung. Ob diese erreicht wird hängt von der Speicherbandbreite,also von der Anzahl der vorhandenen L/S-Pipelines und von der Zahlder benötigten Speicherzugriffe ab.Für technische Anwendungen können folgende Operationen unter-schieden werden:
• Dyadische Operationen (MUL/ADD)
ai↓
= bi↑
+· ci↑
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 13 of 75
PraktikumWissenschaftliches Rechnen
• Triadische Operationen (MUL&ADD)
– „Vector Triad“
ai↓
= bi↑
+ ci↑· di↑
– „Linked Triad“
ai↓
= bi↑
+ s · di↑
– „Repeated Contracting Vector Triad“
ai = ai{
imRegister
gehalten
+ (ci↑· di↑)j , j = 1, 2, . . .
– „Repeated Contracting Linked Triad“
ai = ai{
imRegister
gehalten
+ (s · di↑)j , j = 1, 2, . . .
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 14 of 75
PraktikumWissenschaftliches Rechnen
• Skalarprodukt
s = s + ai↑· bi↑
• „Polyadische“ Operationen
ai = bi + ci · di + ei · fi + gi · hi
Diese Betrachtung gilt analog für Workstations. Auch hier ist dieSpeicherbandbreite der entscheidende „Bottleneck“ für rechenin-tensive Anwendungen.
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 15 of 75
PraktikumWissenschaftliches Rechnen
6. Leistungsanalyse - Maßzahlen eines Vektorrech-ners
• Der Durchsatz D einer Pipeline mit k Stufen und dem Taktzy-klus τ ergibt sich, bei der Verarbeitung von n Elementen überden Zeitraum t = T · τ , zu
D =n
T · τ. (1)
Mit
T = k + (n− 1) (2)
ergibt sich
D =n
(k + (n− 1)) · τ=
1
( kn
+ (1− 1n)) · τ
−→n→∞
1
τ. (3)
Damit ist der maximale Durchsatz einer Pipeline Dmax = 1τ .
• Die Hälfte des maximalen Durchsatzes wird bei der Vektorlängen := n1/2 erreicht. n1/2 wird als „Half-performance length“ bezeichnet.Mit
Dmax2
=1
2 · τ=
n1/2(k + (n1/2 − 1)) · τ
(4)
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 16 of 75
PraktikumWissenschaftliches Rechnen
folgt
n1/2 = k − 1 . (5)Neben der Einschwingzeit muss auch die Startzeit s betrachtetwerden. In der Startzeit werden Vektorbefehle decodiert, Adres-sen für das erste und letzte Feld der Vektoren berechnet, dieOperanden geladen usw. . Damit wird (2) zu
T = k + (n− 1) + s . (6)In der Praxis wird die Startzeit und die Einschwingzeit unterder „Half-performance length“ zusammengefasst. Für die Aus-führungszeit t(n) ergibt sich
t(n) = T · τ = (k + (n− 1) + s) · τ = (n + n1/2)τ (7)
• Ein Blick auf Abschnitt 5 zeigt, dass nicht immer in jedem Zyklusalle benötigten Daten zu Verfügung stehen, bzw. in einem Zy-klus zwei Operationen ausgeführt werden (vgl. Chaining oderSuperskalar-Architektur). Deshalb ist es sinnvoll die effektiveZykluszeit τeff und die ideale Zykluszeit τideal einzuführen. Esgilt
τideal =
{τ , dyadischeOperationτ2
, triadischeOperation.
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 17 of 75
PraktikumWissenschaftliches Rechnen
Die effektive Zykluszeit τeff ist abhängig von der arithm. Opera-tion und der Systemarchitektur. Somit kann aus dem Verhältnisder beiden Werte auf die Effizienz der Architektur geschlossenwerden. Daher ergibt sich der Architekturwirkungsgrad ηa zu
ηa =τidealτeff
. (8)
• Die Floatingpoint-Leistung (Performance) R eines (Vektor-)Rech-ners ist
R =Zahl der Floatingpoint-Operationen
Ausführungszeit. (9)
Wird die effektive Zykluszeit berücksichtigt, ergibt sich mit (7)
R(n) =n
(n + n1/2)τeff=
1
τeff· 11 +
n1/2n
. (10)
Im Grenzwert n →∞ gilt
R∞ =1
τeff. (11)
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 18 of 75
PraktikumWissenschaftliches Rechnen
Der Grenzwert R∞ wird als „Real Peak Performance“ bezeich-net. R∞ kann in der Praxis nicht gemessen werden daher ist essinnvoll die „Maximal Performance“ Rmax als maximal gemes-sene Leistung einzuführen. Dabei muss n � n1/2 gelten. Damitist τeff mit
τeff =1
R∞≈ 1
Rmax(12)
gegeben. Die Leistung wird normalerweise in FLOPS und dieZykluszeit in nsec angegeben.
• Amdahl’sches Gesetz für Vektorisierung
Ein Programm mit insgesamt m Operationen wird auf einemVektorrechner ausgeführt. Für skalare Operationen ergibt sichdie mittlere Leistung Reff,scalar. Für Vektoroperationen mit dermittleren Vektorlänge n̄ ergibt sich die Leistung Reff (n̄). Die Zeitdas vollständige Programm vektoriell bzw. skalar auszuführenist durch
t(n̄) =m
Reff (n̄)bzw. tscalar =
m
Reff,scalar(13)
gegeben.
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 19 of 75
PraktikumWissenschaftliches Rechnen
Der maximal erreichbare Speedup für ein vollständig vektori-siertes Programm ist damit
spmax(n̄) =tscalart(n̄)
=Reff (n̄)
Reff,scalar. (14)
Leider besitzt jedes Programm einen Anteil an skalaren Opera-tionen. Es sei
– v ·m der Anteil an vektorisierbaren Operationen und– (1− v) ·m der Anteil an skalaren Operationen.
Mit der Ausführungszeit
t(n̄, v) =mv
Reff (n̄)+
m(1− v)Reff,scalar
(15)
und (14) ergibt sich
sp(n̄, v) =tscalart(n̄)
=1
vReff,scalar
Reff (n̄)+ (1− v)
−−−−−−−→Reff (n̄)→∞
1
1− v. (16)
Welche Aussage steckt hinter diesem Grenzwert?
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 20 of 75
PraktikumWissenschaftliches Rechnen
Links zum Thema Leistungsbewertung:
www http://home.austin.rr.com/mccalpin/papers/bandwidth/bandwidth.html
www http://www.netlib.org/benchweb/hpc.html
www http://www.scl.ameslab.gov/Publications/Gus/TwelveWays.html
www http://www.nersc.gov/∼dhb/dhbpapers/twelve-ways.txt
http://home.austin.rr.com/mccalpin/papers/bandwidth/bandwidth.htmlhttp://www.netlib.org/benchweb/hpc.htmlhttp://www.scl.ameslab.gov/Publications/Gus/TwelveWays.htmlhttp://www.nersc.gov/~dhb/dhbpapers/twelve-ways.txt
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 21 of 75
PraktikumWissenschaftliches Rechnen
7. Erstellen vektorisierter Programme
7.1. Daumenregeln für Vektorisierung
Richlinien für Schleifen:
• Einfache Schleifen
• Felder und invariante Ausdrücke auf der Rechten Seite benut-zen
• Nur Zuweisungen benutzen
Vermeide folgende Schleifenkörper:
• Funktionsaufrufe
• Nicht vektorisierbare Operationen
• Vektorisierbare Ausdrücke mit verschiedenen Datentypen
• Datenabhängige Abbruchbedingungwhile(a[i]
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 22 of 75
PraktikumWissenschaftliches Rechnen
7.2. Abhängigkeitsanalyse und Vektorisierung
• Schleife Ifor(i=0;i
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 23 of 75
PraktikumWissenschaftliches Rechnen
• Schleife IIIfor(i=1;i1;i--)
{c[i]=c[i] * c[i-1];
}Keine Rekursion!
• Schleife Vfor(i=n-1;i>0;i--)
{c[i]=c[i] * c[i+1];
}REKURSION! ci+1 ist beim Zugriff noch in der Pipeline ⇒ keineVektorisierung!
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 24 of 75
PraktikumWissenschaftliches Rechnen
• Schleife VIfor(i=L;i
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 25 of 75
PraktikumWissenschaftliches Rechnen
• Summations=a[0];for(i=1;i
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 26 of 75
PraktikumWissenschaftliches Rechnen
7.3. Vektorisierung rekursiver Probleme
• Summation ohne Hardwareunterstützung
����
����
����
Cascade-Method: Vektorisie-rung der Summation
– „divide and conquer“ Stra-tegie: Addiere die zweiteHälfte des Vektors zur Ers-ten.
– Setze dieses Prinzip jeweilsmit der ersten Hälfte fort,
– bis das erste Element dieSumme enthält.
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 27 of 75
PraktikumWissenschaftliches Rechnen
• Lineare Rekursion erster Ordnung
x1 = a1; xi = ai + bi · xi−1 , i = 2 . . . n (17)
– „recursive doubling“ (vorgestellt von H.S. Stone 1975) z. B.beschrieben in [1]⇒ Nicht effizient!
– „cyclic reduction“ (vorgestellt von R.W. Hockney) und z. B.in [2] beschrieben
xi = ai + bi · xi−1 ; xi−1 = ai−1 + bi−1 · xi−2xi = ai + bi · (ai−1 + bi−1 · xi−2)xi = (ai + bi · ai−1) + (bi · bi−1) · xi−2xi = (a
(1)i ) + (b
(1)i ) · xi−2
◦ Idee: Bilde Paare und setze die erste Gleichung in dieZweite ein und berechne die Koeffizienten.
◦ Dies ergibt n/2 neuen Gleichung. Bilde wieder Paareund verfahre wie im ersten Schritt.
◦ Dies ergibt n/4 neuen Gleichung, bilde wieder Paare . . .◦ Nachteile: 1) ≈ 2.5-facher Aufwand; 2) Speicherzugriff
mit Stride 2,4,8
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 28 of 75
PraktikumWissenschaftliches Rechnen
x1 = a1
x2 = a2 + b2 · x1x3 = a3 + b3 · (a2 + b2 · x1)x4 = a4 + b4 · x3x3 = a3 + b3 · (a4 + b4 · x3)
· · ·...
Schema der „cyclic reduction“ (Reduktion und Rücksubstitution)
– „partition method“ vorgestellt in [3] z. B. in [4] beschrieben⇒ Meist effizienteste Methode!
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 29 of 75
PraktikumWissenschaftliches Rechnen
7.4. Vektorisierung über die Zahl der Probleme
• Problemstellung 1: Algorithmus besitzt Rekursion
• Problemstellung 2: Daten mit kleiner Vektorlänge
• Soll eine große Anzahl dieser Aufgaben bearbeitet werden, sokönnen beide Problemstellungen durch umsortieren der Datengelöst werden.
54
32
12
34
n
5
98741 2 3
65
98741 2 3
65
98741 2 3
65
98741 2 3
65
98741 2 3
65
12
34
n
5
n+11 2n+1
Vektorisierung über die Zahl der Probleme
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 30 of 75
PraktikumWissenschaftliches Rechnen
Beispiel: Matrix-Matrix-Multiplikation
for(l=0;l
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 31 of 75
PraktikumWissenschaftliches Rechnen
7.5. Schleifen Optimierung
• „loop splitting“for(i=0;i
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 32 of 75
PraktikumWissenschaftliches Rechnen
• „loop collapsing“for(i=0;i
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 33 of 75
PraktikumWissenschaftliches Rechnen
• „inlining“float celsius(float fahr)
{return ((fahr -32.) * 5./9.);
}float orginal(int n)
{...
for(i=0;i
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 34 of 75
PraktikumWissenschaftliches Rechnen
7.6. Vektorbefehle mit Fortran90 und Octave
Die Programmiersprache Fortran90 und die vektoroptimierte Skript-sprache Oktave enthalten Befehle zum erstellen von vektorisiertenProgrammen.
• Allgemein: Vektor Notation
Fortran90: a[start:stop:inkr] = ...
Octave: a[start:inkr:stop] = ...
• Problem: Bedingung in einer Schleifefor(i=1;i alpha)
{x[i] = a[i]+1.;
}else
{x[i] = 0.;
}}
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 35 of 75
PraktikumWissenschaftliches Rechnen
• Lösung 1: Maskierte Operationen
Fortran90:m = a .gt. alphaap = pack (a,mask=m)a = unpack (ap,mask=m,field=b)
Octave: Kein Befehl um Masken zu erzeugen!
Fortran90-Befehl: PACK
Fortran90-Befehl: UNPACK
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 36 of 75
PraktikumWissenschaftliches Rechnen
• Lösung 2: gather/scatter
gather: b = a[Index]
scatter: a[index] = b
Fortran90: Kein Befehl um einen Indexvektor zu erzeugen!
Octave: Index= find (Bedingung)
Indirekte Adressierung: GATHER
Indirekte Adressierung: SCATTER
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 37 of 75
PraktikumWissenschaftliches Rechnen
8. C99 Standard
• restrict Qualifier ⇒ nur über den entsprechend qualifiziertenPointer kann auf ein Objekt zugegriffen werden.
• Variable-length Arrays
• inline Keyword
• _Complex und _Boolean Datentyp
• Macros mit variabler Zahl an Parametern
• . . .
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 38 of 75
PraktikumWissenschaftliches Rechnen
9. Top500 Liste
www http://www.top500.org
Rang Maschine Anz.Konten
R∞/GFLOPS
Rmax/GFLOPS
1 IBM Blue Gene (DOE) 65536 183500 136800
2 IBM Blue Gene (IBM) 40960 114688 91290
3 SGI Altix (NASA) 10160 60960 51870
4 Earth-Simulator NEC 5120 40960 35860
5 JS20 Cluster (Barcelo-na SC)
4800 34406 27450
6 IBM Blue Gene (Uni.Groningen)
12288 22938 19940
http://www.top500.org
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 39 of 75
PraktikumWissenschaftliches Rechnen
10. Beispiele Vektorrechner
10.1. Beispiel für einen Vektorrechner NEC-SX
• Die Supercomputer von NECsind aus „klassischen“ Vektor-Pro-zessorelementen aufgebaut.
• Jeder Prozessor ist achtfach Ausgelegt, d. h. jeder Prozessorliefert in einem Zyklus acht Ergebnisse („pipeline tracking“ ). DieAusführungszeit einer Pipeline ist nach (7) durch
t(n) = (n + n1/2)τeff
gegeben. Dies ist eine Geradengleichung mit der Steigung τeffund dem „y-Achsen-Abschnitt“ τeff · n1/2. Für eine doppelt aus-geführte Pipeline gilt
t(n) = (n
2+ n1/2)τeff
t(n) = (n + 2 · n1/2)τeff2
.n
1/2
1/2n°2
τeff
n
2 pipes
1 pipet(n)
1/2n°
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 40 of 75
PraktikumWissenschaftliches Rechnen
• NECist es gelungen das Problem großer n1/2 bei Pipeline-Ver-vielfachung durch einen „gepipelineten“ Startup zu umgehen.
• Die NEC-SX5 besitzt eine Load-Pipeline und eine Load/Store-Pipeline. Allerdings kann Load und Store nicht parallel ausge-führt werden.
load
load
load
load load
load
storestore
Beispiel: Vektor-Triade
Damit ergibt sich für die maximal zu erwartende Leistung beider Vektortriade
RV triad = 4000 MFLOPS2
5= 1600 MFLOPS .
Für die Addition ergibt sich
Radd = 2000 MFLOPS1
2= 1000 MFLOPS
Warum?
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 41 of 75
PraktikumWissenschaftliches Rechnen
Aufbau der NEC-Vektorrechner
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 42 of 75
PraktikumWissenschaftliches Rechnen
• Earth Simulator
Größe Wert BemerkungR∞ 40.96 TFLOPS 1 GFLOPS · 8 tracks · 8
procs. · 640 nodesFrequenz 500MHz τ = 2nsec
Anz. Prozesso-ren
5120 640 8P.-Knoten
Netzwerk Crossbar640x640
Leistungsbedarf 1.2 MW = 640 ·20 kW
Uni Stuttgart: 18 MW 1
1http://www.uni-stuttgart.de/hkw/standort/tecdat.html
http://www.uni-stuttgart.de/hkw/standort/tecdat.html
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 43 of 75
PraktikumWissenschaftliches Rechnen
Aufbau des Earth Simulator
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 44 of 75
PraktikumWissenschaftliches Rechnen
10.2. Hitachi SR8000
• Die Supercomputer von HITACI sind aus RISC2 Prozessorenaufgebaut. Ihr Befehlssatz entspricht dem der IBM PowerPCProzessoren.
• Es handelt ich um eine doppelt ausgelegte 64-Bit Superskala-rarchitektur.
• Die Speicherbandbreite beträgt zwei Worte pro Zyklus und Arith-metik-Einheit.
• Um die Prozessoren effizient zu nutzen, hat HITACI das sogenannte „Pseudo Vektor Processing“ (PVP) entwickelt.
• PVP ist eine Kombination aus effizientem Datenzugriff (Pre-fetch, Preload) einerseits und effizienter Befehlsbearbeitung(VLIW, Softwarepipelining, „slide registers“ ) andererseits.
• IA-64 -Architektur von Intel : Explicit Parallel Instruction Com-puting (EPIC) mit Modulo-Scheduled Loop Support
• Markteinführung: 1998
2Reduced Instruction Set Computing (im Gegensatz zu CISC ComplexInstruction Set Computing)
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 45 of 75
PraktikumWissenschaftliches Rechnen
• Preload
Direktes Laden aus dem Speicher mit Preloading
Übersicht Prefetch und Preload
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 46 of 75
PraktikumWissenschaftliches Rechnen
11. Informationen aktuellen Prozessoren
11.1. Intel Pentium 4
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 47 of 75
PraktikumWissenschaftliches Rechnen
• MullAdd = 2 FPInst/Zyklus
• L1: 1 load & 1 store
Dokumentation:
www http://www.intel.com/design/Pentium4/documentation.htm
http://www.intel.com/design/Pentium4/documentation.htm
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 48 of 75
PraktikumWissenschaftliches Rechnen
Informationen zu SSE2, Vektorisierung„google“ nach:
• IA-32 Intel Architecture Optimization
• Intel C++ Compiler User’s Guide
Streaming SIMD Extensions data types
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 49 of 75
PraktikumWissenschaftliches Rechnen
Intel Compiler Pragmas für IA-32 Vektorisierung:
• #pragma vector always ⇒ Vektorisierung unabhängig von derEffizienzeinschätzung des Compilers.
• #pragma ivdep ⇒ Vektorisierung unabhängig von der Abhän-gigkeitsanalyse den Compilers#pragma vector always#pragma ivdepfor(i=1;i
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 50 of 75
PraktikumWissenschaftliches Rechnen
Format der SSE2 Intrinsic Functions:
• __m128i; __m128d; //16-byte-aligned
• __m128d _mm_instr _pd(__m128d a, __m128d b)
• suffixes:
– ps,pd → packed single- und double-precision floating pointFunktionen
– ss,sd → scalar single- und double-precision floating pointFunktionen
– pi,pu, si,su, epi,epu→ entsprechende signed und unsigned(extended precision) integer Funktionen
• alle Funktionen findet man in der „Intel C++ Intrinsics Refe-rence“ im „Intel C++ Compiler User’s Guide“
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 51 of 75
PraktikumWissenschaftliches Rechnen
Beispiel Code mit SSE2 Intrinsic Functions:
#define AllignData(data) (void ∗)(((int)data + 15)&∼ 0x0F)
int main() {int dim = 2;double ∗ a, ∗ b, ∗ c, ∗ tptr;
tptr = (double ∗) malloc((dim+2) ∗sizeof(double));a = AllignData(tptr);...sse_add(a,b,c);
return(0);}
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 52 of 75
PraktikumWissenschaftliches Rechnen
#include
int sse_add(double ∗ a, double ∗ b, double ∗ c) {__m128d t0,t1;
t0 = _mm_load_pd(a);t1 = _mm_load_pd(a);t0 = _mm_add_pd(t0,t1);_mm_store_pd(c,t0);
return(0);}
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 53 of 75
PraktikumWissenschaftliches Rechnen
11.2. AMD Opteron
• 1 Mull-FPInst/Zyklus; 1 Add-FPInst/Zyklus (SSEemuliert)
• L1: 2 load oder 2 store pro Zyklus
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 54 of 75
PraktikumWissenschaftliches Rechnen
Memory Controller in der Northbridge z.B. Intel P4 und I2
Memory Controller in der CPU integriert → AMD K8
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 55 of 75
PraktikumWissenschaftliches Rechnen
Intel P4 Dual-Processor-Board
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 56 of 75
PraktikumWissenschaftliches Rechnen
AMD K8Dual-Processor-Board
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 57 of 75
PraktikumWissenschaftliches Rechnen
AMD K8Dual-core Opteron
• Compiler: PGI, GCC-4
www AMD Core Math Library (ACML)
http://developer.amd.com/acml.aspx
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 58 of 75
PraktikumWissenschaftliches Rechnen
11.3. Intel Itamium2
Dokumentation:
www http://www.intel.com/design/itanium/documentation.htm
http://www.intel.com/design/itanium/documentation.htm
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 59 of 75
PraktikumWissenschaftliches Rechnen
Instruction Bundle:
• Bundles: eine Gruppe von Befehlen bildet das Befehlswort (VLIW)
• drei Befehle und das Template bilden ein 128-bit Bundle
• Das Template gibt den Typ des jeweiligen Befehls an
(M) Memory
(I) Complex Integer
(A) Simple Integer
(F) Floating Point
(B) Branch
– . . .
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 60 of 75
PraktikumWissenschaftliches Rechnen
Cache Hierarchie:
• 2 Bundles pro Takt
• 2 loads und 2 stores pro Takt (load 2 Takte Latenz)
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 61 of 75
PraktikumWissenschaftliches Rechnen
Software Pipelining und Loop Unrolling:
L1:Ld4 r4=[r5],4;; cycle 0 load postinc 4Add r7=r4, r9;; cycle 2St4 [r6]=r7,4 cycle 3 store postinc 4Br.cloop L1;; cylce 3
Zweifaches Loop UnrollingL1:
ld4 r4=[r5],4;; cycle 0ld4 r14=[r5],4;; cycle 1add r7=r4,r9;; cycle 2add r17=r14,r9 cycle 3st4 [r6]=r7,4;; cycle 3st4 [r16]=r17,4 cycle 4br.cloop L1;; cycle 4
Weiter: Zwei loads im ersten Takt ⇒ Takt 1 ist wieder leer ⇒ 4-fachunrollingWas ist das Problem?
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 62 of 75
PraktikumWissenschaftliches Rechnen
Modulo Schedule Loop (Software Pipelining)
Stage A: ld4 r4=[r5],4Stage B: -- //empty stageStage C: add r7=r4,r9Stage D: st4 [r6]=r7,4
Jede Stufe der Pipeline ist II (Initiation Interval) Takte lang.
AA
AA
BB
B
CC
CC
DD
DD
B
II
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 63 of 75
PraktikumWissenschaftliches Rechnen
Rotating Register:V irtualRegister = PhysicalRegister−RegisterRotationBase(RRB)
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
r2r1r0
numberregistervirtual
Anmerkung: Die leere Stufe wurde vernachläßigt.
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 64 of 75
PraktikumWissenschaftliches Rechnen
11.4. IBM Power 4
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 65 of 75
PraktikumWissenschaftliches Rechnen
• 2× MullAdd = 4 FPInst/Zyklus
• L1: 2 loads & 1 store für 2 Pipelines = 1.5 Zugriffe/Zyklus
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 66 of 75
PraktikumWissenschaftliches Rechnen
11.5. IBM Power 5 und Blue Gene
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 67 of 75
PraktikumWissenschaftliches Rechnen
• PowerPC 440 (700MHz) dual-core
• 2.8GFLOPS × 2× 16× 32× 64 ≈ 183.5TFLOPS
• Warum „nur“ 700MHz CPU?
• Jeder Core verbraucht nur ca. ein Watt. Das spart Strom, Küh-lung und Platz. 64 Racks verbrauchen 1.8 MW.
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 68 of 75
PraktikumWissenschaftliches Rechnen
11.6. Sun Ultra Sparc III
• MullAdd = 2 FPInst/Zyklus
• Speicherzugriffe ??
www HPC-Kursmaterialien / Course Material
Sun Compilerflags:
-xOn, -xarch, -xchip, -cache-xprefetch, -fsimple, -xinline, -xcrossfile, -xipo-xprofile, -xlibmil, -xlibmopt-ftrap, -fns-dalign, -xmemalign, -xsafe=mem-xdepend, -xvector, -fsingle, -xsfpconst, -xbuiltin
compiler option -g
collect -h cycles,0,insts,0 collect -h cycles,0,ecstall,0 collect -h ecref,0,ecm collect -h dcr,0,dcrm,0
er_print test.1.er test.2.er ...
http://www.rz.rwth-aachen.de/computing/events/material.php
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 69 of 75
PraktikumWissenschaftliches Rechnen
# er_print help me(er_print) help
# show list of experiments(er_print) metric_list
# show results of experiments(er_print) fsingle
# write source and compiler infos to file(er_print) scc [[all][pi][...]](er_print) outfile (er_print) source
--------------------------------------------------------------------------OPTIONS (collect)--------------------------+------------------------------------------------p on | off | hi | lo + Clock profiling--------------------------+------------------------------------------------H on | off + Heap tracing--------------------------+------------------------------------------------m on | off + MPI tracing--------------------------+------------------------------------------------h counter0,0,counter1,0 + Hardware Counters--------------------------+------------------------------------------------j on | off + Java profiling--------------------------+------------------------------------------------S on | off | seconds + Periodic sampling (default interval: 1 sec)--------------------------+-----------------------------------------------
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 70 of 75
PraktikumWissenschaftliches Rechnen
-o experimentfile + Output file
--------------------------+------------------------------------------------d directory + Output directory--------------------------+------------------------------------------------g experimentgroup + Output file group--------------------------+------------------------------------------------L size + Output file size limit [MB]--------------------------+------------------------------------------------F on | off + Follow descendant processes--------------------------+-----------------------------------------------
HW COUNTERS---------------------------------------------------------------------------h cycles,0,insts,0 + Cycle count, instruction count
+ The quotient is the CPI rate+ (clocks per instruction)+ The optimum would be 0.25.+ The Mhz rate of the CPU multiplied with+ the instruction count divided by the+ cycle count gives the MIPS rate.
--------------------------+------------------------------------------------h fpadd,0,fpmul,0 + Floating point additions and multiplications
+ The sum divided by the runtime in Âs gives+ the Mflop/s rate
--------------------------+------------------------------------------------h cycles,0,dtlbm,0 + Cycle count, data translation look-aside
+ buffer (DTLB) misses+ A high rate of DTLB misses indicates an+ unpleasant memory access pattern of the+ program. Large pages might help (Solaris 9)
--------------------------+------------------------------------------------h cycles,0,ecstall,0 + L2 cache stall cycles.--------------------------+-----------------------------------------------
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 71 of 75
PraktikumWissenschaftliches Rechnen
-h cycles,0,dcstall,0 + L1 plus L2 cache stall cycles--------------------------+------------------------------------------------h ecref,0,ecm + L2 cache references and misses--------------------------+------------------------------------------------h dcr,0,dcrm,0 + L1 cache read references and read misses--------------------------+------------------------------------------------h dcw,0,dcwm,0 + L1 cache write references and write misses--------------------------+-----------------------------------------------
scc class_listb[asic] -- show basic messages from all classesv[ersion] -- show version messagesw[arn] -- show warning messagespa[rallel] -- show parallelization messagesq[uery] -- show questions from the compilerl[oop] -- show loop transformation messagespi[pe] -- show pipelining messagesi[nline] -- show inlining messagesm[emops] -- show messages about memory operationsf[e] -- show front-end messagesc[g] -- show code generator messagesall -- show all messagesnone -- do not show messages
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 72 of 75
PraktikumWissenschaftliches Rechnen
12. Vier Wege zu mehr Leistung
• Reduktion der Zykluszeit⇒ Technologie abhängig
• Pipelining⇒ Instruktionen und Arithmetische Operationen
• Parallele Einheiten im Prozessor⇒ MULL&ADD, multi tracked units
• Externer Parallelismus⇒ Shared Memory Computer und Distributed Memory Compu-ter
to be continued . . .
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 73 of 75
PraktikumWissenschaftliches Rechnen
Literatur
[1] SCHÖNAUER, W.: Scientific Computing on Vector Computers.Amsterdam : North-Holland, 1987
[2] HOCKNEY, R.W. ; JESSHOPE, C.R.: Parrallel Computers 2. AdamHilger, 1988. – Bem: Ein Klassiker!
[3] VAN DER VORST, H.A. ; DEKKER, K.: Vectorization of linesr re-currence relations. In: SIAM J. Sci. Stat. Comput. 10 (1989), Nr.1, S. 27–35
[4] SCHÖNAUER, W.: Scientific Supercomputing. Karlsruhe : Schö-nauer, 2000. – Bem: Anwendungs bezogenes Vorlesungsskript,das lange Zeit handschriftlich (?!) im Web zufinden war. Sehrempfehlenswert! . – ISBN 3–00–005484–7
[5] DOWD, Kevin ; SEVERANCE, Charles: High Performance Compu-ting. O’Reilly, 1998. – Bem: Ein Buch für Praktiker! OptimierterSpeicherzugriff, Schleifen-Optimierung und Benchmarking sindnur einige Themen aus dem breiten Vorrat, den dieses Buch be-reit hällt. – ISBN 3–931216–76–4
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 74 of 75
PraktikumWissenschaftliches Rechnen
[6] UNGERER, Th.: Parallelrechner und parallele Programmierung.Berlin : Spektrum, 1997. – Bem: Das Buch gibt einen weitreich-nenden Überblick. Es schliest die Lücke zwischen theoretischenKonzepten einerseits und einer Handware bezogenen Betrach-tung andererseits hin zur praktischen Anwendung. Es handeltsich um ein klassisches Lehrbuch. – ISBN 3–8274–0231–X
[7] MÄRTIN, Ch.: Rechnerachitekturen. Leibzig : Fachbuchverlag,2001. – Bem: Wer über die Inhalte des Praktikums hinaus anRechnerarchitektur interresiert ist, findet hier ein Lehrbuch, dassich auch sehr gut als Nachschlagewerk eignet. – ISBN 3–446–21475–5
[8] LEISS, E. L.: Parallel and Vector Computing. New York : McGraw-Hill, 1995. – Bem: Gute Bücher zur Parallelen Programierungsind schwer zu finden. Dies ist ein gutes Buch und wurde vor-allem wegen der Beiträge zum Vector Computing in diese Listeaufgenommen. – ISBN 0–07–037692–1
[9] SANDERS, P. ; WORSCH, Th.: Parallele Programmierung mit MPI.Berlin : Logos, 1997. – Bem: Das Buch wurde als Begleitheftzu einem Praktikum konzipiert. Es beitet eine praxisbezogeneEinführung in das Message Passing Interface MPI. – ISBN 3–931216–76–4
-
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 75 of 75
PraktikumWissenschaftliches Rechnen
[10] BUNGARTZ, H-J.: Numerische Simulation als interdisziplinäreHerausforderung. Springer, 2002. – Bem: Dieses einmaligeWerk richtet sich vornehmlich an das gewählte Fachpublikum.Der geneigte Leser findet in diesem Band vorzügliche Beiträgeaus dem Gebiet der numerischen Simulation. Das Buch kann inder Abteilung SgS eingesehen werden, da es leider nicht denWeg in den Buchhandel fand
Konzept des PraktikumsParallelität - EbenenKlassifikation nach FlynnVektorrechner - AufbauWas ist ein Vektorrechner?Prinzipskizze eines VektorprozessorsPipelining
Arithm. OperationenLeistungsanalyseVektorisierte ProgrammeDaumenregeln für VektorisierungAbhängigkeitsanalyse und VektorisierungVektorisierung rekursiver ProblemeVektorisierung über die Zahl der ProblemeSchleifen OptimierungVektorbefehle mit Fortran90 und Octave
C99 StandardTop500 ListeVektorrechnerVektorrechner - NEC-SXHitachi SR8000
Aktuelle ProzessorenIntel Pentium 4AMD OpteronIntel Itamium2IBM Power 4IBM Power 5 und Blue GeneSun Ultra Sparc III
Mehr LeistungLiteratur