Post on 23-Oct-2020
transcript
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 1 of 94
PraktikumWissenschaftliches Rechnen
Praktikum Wissenschaftliches Rechnen
Performance-optimized Programming
Scientific Computing in Computer ScienceProf. Dr. H.-J. Bungartz
Dipl.-Geophys. Markus Brenkbrenk@in.tum.deDr. Ralf Mundanimundani@in.tum.deDipl.Ing. Ioan Munteanmuntean@in.tum.de
19. November 2007
mailto:brenk@in.tum.demailto:mundani@in.tum.demailto:muntean@in.tum.de
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 2 of 94
PraktikumWissenschaftliches Rechnen
1. Ziel des Praktikums
HLRB II
Highend CPUs
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 3 of 94
PraktikumWissenschaftliches Rechnen
2. Konzept des Praktikums
• Einführung und grundlegende Fertigkeiten
– Laufzeitoptimierung (Pipeline, Cache)– Programmieren auf Shared-Memory Rechnern (OpenMP)– Programmieren auf Distributed-Memory Rechnern (MPI)– fünf Übungsblätter; teilweise theoretische Aufgaben; enge
Vorgaben
• 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/WS07/
http://www5.in.tum.de/lehre/praktika/wissprak/WS07/
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 4 of 94
PraktikumWissenschaftliches Rechnen
3. 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)
– Cell-Processor– SSE[1− 4]– . . .
• Anweisungsebene
– Superskalarrechner (z. B. Workstation/PC)– VLIW-Rechner (very long instruktion word) (z. B. Itanium)– . . .
ILP – Instruction Level Parallelism
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 5 of 94
PraktikumWissenschaftliches Rechnen
• Blockebene (Threads)
– Shared-Memory-Rechner (z. B. SUN-UltraSparc, SGI-Altix)– . . .
• Prozessebene
– Distributed-Memory-Rechner (Cray-T3E, IBM-SP)– . . .
• Programmebene
– Workstation-Cluster– Grid-Computer– . . .
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 6 of 94
PraktikumWissenschaftliches Rechnen
4. 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
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 7 of 94
PraktikumWissenschaftliches Rechnen
5. Aufbau eines Vektorrechner
5.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)
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 8 of 94
PraktikumWissenschaftliches Rechnen
5.2. Prinzipskizze eines Vektorprozessors
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 9 of 94
PraktikumWissenschaftliches Rechnen
5.3. Pipelining
• Instruktion Pipelining
Befehlsausführung ohne und mit Pipelining
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 10 of 94
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
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 11 of 94
PraktikumWissenschaftliches Rechnen
• Software Pipelining
Die einzelnen Schleifeniterationen werden überlappt ausgeführt.Jede Zeile entspricht einem VLIW.
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 12 of 94
PraktikumWissenschaftliches Rechnen
for(i=0;i
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 13 of 94
PraktikumWissenschaftliches Rechnen
6. Arithm. Operationen und Speicherzugriffe
Bei einem Vektorrechner können die arithmetischen Pipelines ver-kettet werden, diese wiederum können mit den Load- bzw. Store-Pipelines verkettet werden. Somit ist ein kontinuierlicher Datenstromvom Speicher zum Prozessor und zurück realisierbar.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↑
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 14 of 94
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, . . .
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 15 of 94
PraktikumWissenschaftliches Rechnen
– „Repeated Contracting Linked Triad“
ai = ai{imRegister
gehalten
+ (s · di↑
)j , j = 1, 2, . . .
• Skalarprodukt
s = s+ ai↑· bi↑
• „Polyadische“ Operationen
ai = bi + ci · di + ei · fi + gi · hi
Diese Betrachtung gilt analog für Workstations/PCs. Auch hier ist dieSpeicherbandbreite in der Regel der entscheidende „Bottleneck“ fürrechenintensive Anwendungen.
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 16 of 94
PraktikumWissenschaftliches Rechnen
7. 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.
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 17 of 94
PraktikumWissenschaftliches Rechnen
Mit
Dmax2
=1
2 · τ=
n1/2(k + (n1/2 − 1)) · τ
(4)
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)
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 18 of 94
PraktikumWissenschaftliches Rechnen
• Ein Blick auf Abschnitt 6 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.
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)
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 19 of 94
PraktikumWissenschaftliches Rechnen
• 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· 1
1 +n1/2n
. (10)
Im Grenzwert n→∞ gilt
R∞ =1
τeff. (11)
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 20 of 94
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∞≈ 1Rmax
(12)
gegeben. Die Leistung wird normalerweise in FLOPS und dieZykluszeit in nsec angegeben.
• Amdahl’sches Gesetz für VektorisierungEin 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 LeistungReff (n̄). Die Zeitdas vollständige Programm vektoriell bzw. skalar auszuführenist durch
t(n̄) =m
Reff (n̄)bzw. tscalar =
m
Reff,scalar(13)
gegeben.
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 21 of 94
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,scalarReff (n̄)
+ (1− v)−−−−−−−→Reff (n̄)→∞
1
1− v. (16)
Welche Aussage steckt hinter diesem Grenzwert?
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 22 of 94
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://crd.lbl.gov/ dhbailey/dhbpapers/twelve-ways.pdf
http://home.austin.rr.com/mccalpin/papers/bandwidth/bandwidth.htmlhttp://www.netlib.org/benchweb/hpc.htmlhttp://www.scl.ameslab.gov/Publications/Gus/TwelveWays.htmlhttp://crd.lbl.gov/~dhbailey/dhbpapers/twelve-ways.pdf
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 23 of 94
PraktikumWissenschaftliches Rechnen
8. Erstellen vektorisierter Programme
8.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]
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 24 of 94
PraktikumWissenschaftliches Rechnen
8.2. Abhängigkeitsanalyse und Vektorisierung
• Schleife Ifor(i=0;i
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 25 of 94
PraktikumWissenschaftliches Rechnen
• Schleife IIIfor(i=1;i1;i--){c[i]=c[i]*c[i-1];
}Keine Rekursion!
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 26 of 94
PraktikumWissenschaftliches Rechnen
• 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!
• Schleife VIfor(i=L;i
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 27 of 94
PraktikumWissenschaftliches Rechnen
Vektorisierbar, wenn L ≥ vrl oder „sichere Vektorregisterlän-ge“ mit Compilerdirektive angeben.
• Berechnet der folgende Code den Mittelwert zweier benachbar-ter Elemente?for(i=1;i
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 28 of 94
PraktikumWissenschaftliches Rechnen
• Summations=a[0];for(i=1;i
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 29 of 94
PraktikumWissenschaftliches Rechnen
www http://docs.cray.comSuche nach „S-2312-36“.
http://docs.cray.com
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 30 of 94
PraktikumWissenschaftliches Rechnen
8.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.
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 31 of 94
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 Paare
und verfahre wie im ersten Schritt.◦ Dies ergibt n/4 neuen Gleichung, bilde wieder Paare . . .
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 32 of 94
PraktikumWissenschaftliches Rechnen
◦ Nachteile: 1) ≈ 2.5-facher Aufwand; 2) Speicherzugriffmit Stride 2,4,8
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 33 of 94
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!
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 34 of 94
PraktikumWissenschaftliches Rechnen
8.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
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 35 of 94
PraktikumWissenschaftliches Rechnen
Beispiel: Matrix-Matrix-Multiplikation
for(l=0;l
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 36 of 94
PraktikumWissenschaftliches Rechnen
8.5. Abhängigkeitsanalyse
Si: A = C - ASii: A = B + CSiii: B = A + C
• echet Abhängigkeit (true dependence)
• Gegenabhängigkeit (anti dependence)
• Ausgabeabhängigkeit (output dependence)
Siii bzgl. Sii für A
Siii bzgl. Sii für B
Sii bzgl. Si für A
• S2 zeigt eine true dependence bzgl. S1, S2 δ S2,wenn OUT(S1) ∩ IN(S2) 6= ∅;å S2 benutzt das Ergebniss von S1
• S2 zeigt eine anti dependence bzgl. S1, S2 δ−1 S2,wenn IN(S1) ∩ OUT(S2) 6= ∅;å werden S2 und S1 vertauscht, so wird S1 fälschlicher Weisedas Ergebniss von S2 benutzen
• S2 und S1 zeigen eine output dependence, S2 δO S2,wenn OUT(S1) ∩ OUT(S2) 6= ∅;å werden S2 und S1 vertauscht, so enthält die Zuweisungsva-riable bei Wiederverwendung den falschen Wert
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 37 of 94
PraktikumWissenschaftliches Rechnen
8.6. Abhängigkeiten in Schleifen
• Man unterscheidet loop-independet dependence und loop-carrieddependence.
– Ergibt sich eine Abhängigkeit zwischen zwei Anweisungenauserhalb einer Schleife, oder zeigt sich die Abhängigkeitinnerhalb einer Iteration der Schleife, so spricht man voneiner loop-independet dependence.
– Eine loop-carried dependence ergibt sich aus zwei Anwei-sungen (dabei kann es sich auch um dieselbe Codezeilehandeln), die in unterschiedlichen Iterationen der Schleifeausgeführt werden.
for(i=0;i
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 38 of 94
PraktikumWissenschaftliches Rechnen
• Distanzvektor und Richtungsvektor
Die Vektoren i = (i1, . . . , id) und j = (j1, . . . , jd), deren Elemen-te die Werte der Schleifenvariblen eines d-fach geschachteltenSchleifenblocks für zwei unteschiedliche Zustände beinhalten,werden als Iterationsvektoren (iteration vectors) bezeichent.
Aus der Differenz der Iterationsvektoren ergibt sich der Distanz-vektor ∆k = ik − jk, k = 1, . . . , d.
Der Richtungsvektor (direction vector) D(i, j) ist ein Vektor mitd Elementen, die die Werte annehmen können.Dabei ergibt sich das Element D(i, j)k zu
, wenn ∆s > 0 gilt.
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 39 of 94
PraktikumWissenschaftliches Rechnen
Die Anweisung S2 hat eine loop-carried dependence bzgl. derAnweisung S1 falls:
1. S1 auf die Speicherstellen M in der Iteration i und S2 diesel-be Spreicherstelle M in der Iteration j, und
2. D(i, j) zumindest ein Element sich von = unterscheidet,und daraus das erste den Wert < enthält.
Die Anweisung S2 hat eine loop-independet dependence bzgl.der Anweisung S1 falls:
1. S1 auf die Speicherstellen M in der Iteration i und S2 diesel-be Spreicherstelle M in der Iteration j, und
2. alle Einträge in D(i, j) sind identisch mit =, und3. die Auswertung von S2 erfolgt im Programmcode nach S1.
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 40 of 94
PraktikumWissenschaftliches Rechnen
for I1 := 1 to u1for I2 := 1 to u2...for Id := 1 to ud......A(a0+a1∗I1+· · ·+ad∗Id)...A(b0+b1∗I1+· · ·+bd∗Id)
endfor...
endforendfor
Betrachen wir nun einen Schleifenblock Lmit d geschachtelten Schlei-fen, der die Anweisungen S1(I) . . . SN(I) einhält, wobei I = (I1, . . . , Id)den Indexvektor der verschiedenen Schleifendurchläufe repräsen-tiert. Wir nehmen an, dass jede dieser Anweisungen Sr(I) eine Zu-weisung enthält. Somit bezieht sich die Anweisung Sr(i) auf die An-weisung Sr in der Iteration i = (i1, . . . , id). A ist ein ein-dimensionalesArray.
Wir benutzen zudem die folgende Notation: Für jede Ganze Zahl qgilt q+ = max(q, 0) q− = max(−q, 0)
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 41 of 94
PraktikumWissenschaftliches Rechnen
Theorem 1. Betrachtet werden die Anweisungen Sr und St imSchleifenblock L, dabei sei A(f(I)) eine Variable aus der Anwei-sung Sr und A(g(I)) eine Variable aus St, wobei zumindest auf eineder beiden Variablen schreibend zugegriffen wird.
f(I) = a0 +d∑
k=1
akIk (18)
g(I) = b0 +d∑
k=1
bkIk (19)
Gilt Sr δ St und geht die Abhängigkeit von A(f(I)) und A(g(I)) aus,so gelten die folgenden zwei Bedingungen:
Bed. 1. Der größte gemeinsame Teiler ggT (a1, . . . , ad, b1, . . . , bd)ist ein Teiler von b0 − a0; Ist b0 − a0 = 0 so ist diese Bedingungautomatisch erfüllt.
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 42 of 94
PraktikumWissenschaftliches Rechnen
Bed. 2. Es existiert ein Parameter λ mit 1 ≤ λ ≤ d für r ≥ t und1 ≤ λ ≤ d+ 1 für r < t wobei gilt
−bλ −λ−1∑k=1
(ak − bk)−uk − (a−λ + bλ)+(uλ − 1)−
d∑k=λ+1
(a−k + b+k )uk
≤ b0 − a0 ≤
−bλ +λ−1∑k=1
(ak − bk)+uk + (a+λ − bλ)+(uλ − 1) +
d∑k=λ+1
(a+k + b−k )uk
mit ud+1 = ad+1 = bd+1 = 0.
• Theorem 1. gilt für die echte Abhängigkeit als auch für die Anti-abhängigkeit und die Ausgabeabhängigkeit.
• Die zwei Bedingungen aus Theorem 1. sind notwendig abernicht hinreichend für Nachweis der Abhängigkeit Sr δ St
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 43 of 94
PraktikumWissenschaftliches Rechnen
Beispiel: 1
for(ii=0;ii
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 44 of 94
PraktikumWissenschaftliches Rechnen
Theorem 2. Bed. 1. und Bed. 2 aus Theorem 1. sind notwendigund hinreichend, falls für eine positive ganze Zahl q existiert für die
ak = qαk , bk = qβk mit αk, βk ∈ {−1, 0, 1} für alle k = 1, . . . , d
gilt.
Beispiel: 2
for(i1=0;i1
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 45 of 94
PraktikumWissenschaftliches Rechnen
for(i1=0;i1
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 46 of 94
PraktikumWissenschaftliches Rechnen
for(i1=0;i1
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 47 of 94
PraktikumWissenschaftliches Rechnen
8.7. Schleifen Optimierung
• „loop splitting“for(i=0;i
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 48 of 94
PraktikumWissenschaftliches Rechnen
• „loop collapsing“for(i=0;i
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 49 of 94
PraktikumWissenschaftliches Rechnen
• „inlining“float celsius(float fahr){return ((fahr -32.)*5./9.);
}float orginal(int n){
...for(i=0;i
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 50 of 94
PraktikumWissenschaftliches Rechnen
8.8. 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.;
}}
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 51 of 94
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
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 52 of 94
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
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 53 of 94
PraktikumWissenschaftliches Rechnen
9. 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
• . . .
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 54 of 94
PraktikumWissenschaftliches Rechnen
10. Top500 Liste
www http://www.top500.org
Nicht aktuell!
Rang Maschine Anz.Konten
R∞/GFLOPS
Rmax/GFLOPS
1 IBM Blue Gene (DOE) 131072 367000 2806002 IBM Blue Gene (IBM) 40960 114688 912903 IBM ASC Purple(DOE) 12208 92781 757604 SGI Altix (NASA) 10160 60960 518705 Itanium2 Cluster (CEA) 8704 55705 429008 IBM Blue Gene (FZJ) 16348 45875 3733010 Earth-Simulator NEC 5120 40960 35860
http://www.top500.org
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 55 of 94
PraktikumWissenschaftliches Rechnen
11. Beispiele Vektorrechner
11.1. Beispiel für einen Vektorrechner NEC-SX
• Die Supercomputer von NEC sind 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)τeff
2.
n1/2
1/2n°2
τeff
n
2 pipes
1 pipet(n)
1/2n°
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 56 of 94
PraktikumWissenschaftliches Rechnen
• NEC ist 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 = 4000MFLOPS2
5= 1600MFLOPS .
Für die Addition ergibt sich
Radd = 2000MFLOPS1
2= 1000MFLOPS
Warum?
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 57 of 94
PraktikumWissenschaftliches Rechnen
Aufbau der NEC-Vektorrechner
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 58 of 94
PraktikumWissenschaftliches Rechnen
• Earth Simulator
Größe Wert BemerkungR∞ 40.96 TFLOPS 1 GFLOPS · 8 tracks · 8
procs. · 640 nodesFrequenz 500MHz τ = 2nsecAnz. 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
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 59 of 94
PraktikumWissenschaftliches Rechnen
Aufbau des Earth Simulator
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 60 of 94
PraktikumWissenschaftliches Rechnen
12. SGI Altix (LRZ)
Größe Wert BemerkungR∞ 26.2 TFLOPS 3.2 GFLOPS · 2 pipes · 256
procs. · 16 nodesFrequenz 1.6GHzAnz. Prozesso-ren
4096
Netzwerk NUMAlink2D-Torus (16 no-des)
node intern: (thin out) fattree
Leistungsbedarf 1.0 MW
www http://www.lrz-muenchen.de/services/compute/hlrb/hardware/hardware.html
http://www.lrz-muenchen.de/services/compute/hlrb/hardware/hardware.htmlhttp://www.lrz-muenchen.de/services/compute/hlrb/hardware/hardware.html
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 61 of 94
PraktikumWissenschaftliches Rechnen
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 62 of 94
PraktikumWissenschaftliches Rechnen
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 63 of 94
PraktikumWissenschaftliches Rechnen
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 64 of 94
PraktikumWissenschaftliches Rechnen
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 65 of 94
PraktikumWissenschaftliches Rechnen
13. Informationen aktuellen Prozessoren
13.1. Intel Pentium 4
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 66 of 94
PraktikumWissenschaftliches Rechnen
• MullAdd = 2 FPInst/Zyklus
• L1: 1 load & 1 store
Dokumentation:
www http://www3.intel.com/cd/ids/developer/asmo-na/eng/dc/pentium4/index.htm
www http://www.intel.com/design/archives/processors/
http://www3.intel.com/cd/ids/developer/asmo-na/eng/dc/pentium4/index.htmhttp://www.intel.com/design/archives/processors/
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 67 of 94
PraktikumWissenschaftliches Rechnen
Informationen zu SSE2, Vektorisierung„google“ nach:
• IA-32 Intel Architecture Optimization
• Intel C++ Compiler User’s Guide
Streaming SIMD Extensions data types
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 68 of 94
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
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 69 of 94
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“
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 70 of 94
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);}
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 71 of 94
PraktikumWissenschaftliches Rechnen
#include
int sse_add(double ∗ a, double ∗ b, double ∗ c) {__m128d t0,t1;
t0 = _mm_load_pd(a);t1 = _mm_load_pd(b);t0 = _mm_add_pd(t0,t1);_mm_store_pd(c,t0);
return(0);}
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 72 of 94
PraktikumWissenschaftliches Rechnen
13.2. AMD Opteron
• 1 Mull-FPInst/Zyklus; 1 Add-FPInst/Zyklus (SSE emuliert)
• L1: 2 load oder 2 store pro Zyklus
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 73 of 94
PraktikumWissenschaftliches Rechnen
Memory Controller in der Northbridge z.B. Intel P4 und I2
Memory Controller in der CPU integriert→ AMD K8
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 74 of 94
PraktikumWissenschaftliches Rechnen
Intel P4 Dual-Processor-Board
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 75 of 94
PraktikumWissenschaftliches Rechnen
AMD K8 Dual-Processor-Board
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 76 of 94
PraktikumWissenschaftliches Rechnen
AMD K8 Dual-core Opteron
• Compiler: PGI, GCC-4
www AMD Core Math Library (ACML)
http://developer.amd.com/acml.aspx
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 77 of 94
PraktikumWissenschaftliches Rechnen
13.3. Intel Itamium2
Dokumentation:
www http://www.intel.com/design/archives/processors/itanium/index.htm
http://www.intel.com/design/archives/processors/itanium/index.htm
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 78 of 94
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
– . . .
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 79 of 94
PraktikumWissenschaftliches Rechnen
Cache Hierarchie:
• 2 Bundles pro Takt
• 2 loads und 2 stores pro Takt (load 2 Takte Latenz)
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 80 of 94
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?
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 81 of 94
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
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 82 of 94
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.
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 83 of 94
PraktikumWissenschaftliches Rechnen
13.4. IBM Power 4
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 84 of 94
PraktikumWissenschaftliches Rechnen
• 2× MullAdd = 4 FPInst/Zyklus
• L1: 2 loads & 1 store für 2 Pipelines = 1.5 Zugriffe/Zyklus
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 85 of 94
PraktikumWissenschaftliches Rechnen
13.5. IBM Power 5 und Blue Gene
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 86 of 94
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.
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 87 of 94
PraktikumWissenschaftliches Rechnen
13.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
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 88 of 94
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)--------------------------+-----------------------------------------------
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 89 of 94
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.--------------------------+-----------------------------------------------
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 90 of 94
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
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 91 of 94
PraktikumWissenschaftliches Rechnen
14. 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 . . .
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 92 of 94
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
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 93 of 94
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
Ziel des Praktikums
Konzept des Praktikums
Parallelität - Ebenen
Klassifikation nach Flynn
Vektorrechner - Aufbau
Arithm. Operationen
Leistungsanalyse
Vektorisierte Programme
C99 Standard
Top500 Liste
Vektorrechner
SGI Altix (LRZ)
Aktuelle Prozessoren
Mehr Leistung
Literatur
Page 94 of 94
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
Ziel des PraktikumsKonzept 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 ProblemeAbhängigkeitsanalyseAbhängigkeiten in SchleifenSchleifen OptimierungVektorbefehle mit Fortran90 und Octave
C99 StandardTop500 ListeVektorrechnerVektorrechner - NEC-SX
SGI Altix (LRZ)Aktuelle ProzessorenIntel Pentium 4AMD OpteronIntel Itamium2IBM Power 4IBM Power 5 und Blue GeneSun Ultra Sparc III
Mehr LeistungLiteratur