praktikum wissenschaftliches rechnen · konzept des praktikums parallelität - ebenen...

79
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 79 Praktikum Wissenschaftliches Rechnen Praktikum Wissenschaftliches Rechnen Performance-optimized Programming Scientific Computing in Computer Science Prof. Dr. H.-J. Bungartz Dipl.-Geophys. Markus Brenk [email protected] Dr. Ralf Mundani [email protected] 26. Oktober 2006

Upload: truongdieu

Post on 11-Aug-2019

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

Praktikum Wissenschaftliches Rechnen

Performance-optimized Programming

Scientific Computing in Computer ScienceProf. Dr. H.-J. Bungartz

Dipl.-Geophys. Markus [email protected]. Ralf [email protected]

26. Oktober 2006

Page 2: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

1. Ziel des Praktikums

HLRB II

Highend CPUs

Page 3: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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; 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/WS06/

Page 4: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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

Page 5: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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

– . . .

Page 6: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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

Page 7: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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)

Page 8: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

5.2. Prinzipskizze eines Vektorprozessors

Page 9: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

5.3. Pipelining

• Instruktion Pipelining

Befehlsausführung ohne und mit Pipelining

Page 10: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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

Page 11: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

• Software Pipelining

Die einzelnen Schleifeniterationen werden überlappt ausgeführt.Jede Zeile entspricht einem VLIW.

Page 12: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

for(i=0;i<n;i++){

a[i]=b[i]+c;}

Bei einer Pipeline mit k Stufen wird nach einer Einschwingzeit, abdem Systemzyklus k zu jedem Takt ein Ergebnis geliefert.

Page 13: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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↑

Page 14: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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, . . .

Page 15: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

• 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.

Page 16: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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.Mit

Dmax

2=

1

2 · τ=

n1/2

(k + (n1/2 − 1)) · τ(4)

Page 17: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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 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.

Page 18: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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

· 1

1 +n1/2

n

. (10)

Im Grenzwert n →∞ gilt

R∞ =1

τeff

. (11)

Page 19: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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.

Page 20: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

Der maximal erreichbare Speedup für ein vollständig vektori-siertes Programm ist damit

spmax(n̄) =tscalar

t(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) =tscalar

t(n̄)=

1

vReff,scalar

Reff (n̄)+ (1− v)

−−−−−−−→Reff (n̄)→∞

1

1− v. (16)

Welche Aussage steckt hinter diesem Grenzwert?

Page 21: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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

Page 22: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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]<0.0)

{a[i]=b[i] * c[i];i++;

}

Page 23: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

8.2. Abhängigkeitsanalyse und Vektorisierung

• Schleife Ifor(i=0;i<n;i++)

{a[i]=b[i]+c[i];

}Keine Abhängigkeiten zwischen den einzelnen Iterationen ⇒kann optimal in einer Pipeline ausgeführt werden.

• Schleife IIfor(i=0;i<n-1;i++)

{c[i]=c[i] * c[i];d[i]=d[i] * d[i+1];

}Es werden nur „alte“ Werte benutzt ⇒ volle Vektorisierung!

Page 24: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

• Schleife IIIfor(i=1;i<n;i++)

{c[i]=c[i] * c[i-1];

} REKURSION! ci−1 ist beim Zugriff noch in der Pipeline ⇒keine Vektorisierung!

• Schleife IVfor(i=n;i>1;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!

Page 25: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

• Schleife VIfor(i=L;i<n;i++)

{c[i]=c[i] * c[i-L];

}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<n;i++)

{b[i]=(b[i]+b[i-1])/2;

}

Page 26: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

• Summations=a[0];for(i=1;i<n;i++)

{s=s+a[i];

}Umsetzung zu Vektorcode:b[0]=a[0];for(i=1;i<n;i++)

{b[i]=b[i-1]+a[i];

}s=b[n-1];Rekursion! Lösung:„Wheel Method“

21x , x , x , x3 4

a ,a ,... an21

Wheel-Method: Vektorisierung der Summation

www http://docs.cray.comSuche nach „S-2312-36“.

Page 27: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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.

Page 28: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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−2

xi = ai + bi · (ai−1 + bi−1 · xi−2)

xi = (ai + bi · ai−1) + (bi · bi−1) · xi−2

xi = (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

Page 29: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

x1 = a1

x2 = a2 + b2 · x1

x3 = a3 + b3 · (a2 + b2 · x1)

x4 = a4 + b4 · x3

x3 = 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!

Page 30: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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

Page 31: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

Beispiel: Matrix-Matrix-Multiplikation

for(l=0;l<n;l++){for(i=0;i<m;i++){for(j=0;j<m;j++){s=0.0;for(k=0;k<m;k++){s+=a[l,i,k] * b[l,k,j];

}c[l,i,j]=s;

}}

}

for(i=0;i<m;i++){for(j=0;j<m;j++){for(l=0;l<n;l++){s[l]=0.0;

}for(k=0;k<m;k++){for(l=0;l<n;l++){s[l]+=a[i,k,l] * b[k,j,l];

}}

for(l=0;l<n;l++){c[i,j,l] = s[l];

}}

}

Page 32: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

8.5. Schleifen Optimierung

• „loop splitting“for(i=0;i<n;i++)

{d[i]=d[i-1] * e[i];f[i]=f[i]+c[i-1];

}

for(i=0;i<n;i++){

d[i]=d[i-1] * e[i];}

for(i=0;i<n;i++){

f[i]=f[i]+c[i-1];}

• „loop interchange“for(k=0;k<m;k++)

{for(i=0;i<n;i++)

{c[i,k]=a[i,k] * b[i,k];

}}

for(i=0;i<n;i++){

for(k=0;k<m;k++){

c[i,k]=a[i,k] * b[i,k];}

}

Page 33: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

• „loop collapsing“for(i=0;i<n;i++)

{for(k=0;k<m;k++)

{c[i,k]=a[i,k] * b[i,k];

}}

for(k=0;k<n * m;k++){

c[1,k]=a[1,k] * b[1,k];}

• „loop unrolling“for(i=0;i<3;i++)

{for(k=0;k<m;k++)

{c[i,k]=a[i,k] * b[i,k];

}}

for(k=0;k<m;k++){

c[0,k]=a[0,k] * b[0,k];c[1,k]=a[1,k] * b[1,k];c[2,k]=a[2,k] * b[2,k];

}

Page 34: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

• „inlining“float celsius(float fahr)

{return ((fahr -32.) * 5./9.);

}float orginal(int n)

{...

for(i=0;i<n;i++){

a[i]=celsius(b[i]);}

}

• „intrinsic funktion“for(i=1;i<n;i++)

{a[i]=sin(b[i])+c[i];

}

Ein ausführliches Kapitel über Schleifen-Optimierung findet sich z.B.in [5].

Page 35: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

8.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<n;i++)

{a[i] = sqrt(b[i]) * c[i];if (a[i] > alpha)

{x[i] = a[i]+1.;

}else

{x[i] = 0.;

}}

Page 36: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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

Page 37: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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

Page 38: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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

• . . .

Page 39: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

10. Top500 Liste

www http://www.top500.org

Rang Maschine Anz.Konten

R∞/GFLOPS

Rmax/GFLOPS

1 IBM Blue Gene (DOE) 131072 367000 280600

2 IBM Blue Gene (IBM) 40960 114688 91290

3 IBM ASC Purple(DOE) 12208 92781 75760

4 SGI Altix (NASA) 10160 60960 51870

5 Itanium2 Cluster (CEA) 8704 55705 42900

8 IBM Blue Gene (FZJ) 16348 45875 37330

10 Earth-Simulator NEC 5120 40960 35860

Page 40: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

11. Beispiele Vektorrechner

11.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 τeff

und 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°

Page 41: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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?

Page 42: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

Aufbau der NEC-Vektorrechner

Page 43: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

• Earth Simulator

Größe Wert BemerkungR∞ 40.96 TFLOPS 1 GFLOPS · 8 tracks · 8

procs. · 640 nodes

Frequenz 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

Page 44: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

Aufbau des Earth Simulator

Page 45: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

12. SGI Altix (LRZ)

Größe Wert BemerkungR∞ 26.2 TFLOPS 3.2 GFLOPS · 2 pipes · 256

procs. · 16 nodes

Frequenz 1.6GHz

Anz. Prozesso-ren

4096

Netzwerk NUMAlink

2D-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

Page 46: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

Page 47: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

Page 48: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

Page 49: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

Page 50: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

13. Informationen aktuellen Prozessoren

13.1. Intel Pentium 4

Page 51: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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/

Page 52: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

Informationen zu SSE2, Vektorisierung„google“ nach:

• IA-32 Intel Architecture Optimization

• Intel C++ Compiler User’s Guide

Streaming SIMD Extensions data types

Page 53: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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<n;i++)

{c[i]=s * c[i+k];

}

• . . .

SSE Intrinsic Functions:„google“ nach:

• Intel „How to Use Intrinsics“

• „Introduction to SSE Programming“

• „SSE2 Optimization“

Page 54: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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“

Page 55: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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);}

Page 56: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

#include <emmintrin.h>

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);}

Page 57: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

13.2. AMD Opteron

• 1 Mull-FPInst/Zyklus; 1 Add-FPInst/Zyklus (SSEemuliert)

• L1: 2 load oder 2 store pro Zyklus

Page 58: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

Memory Controller in der Northbridge z.B. Intel P4 und I2

Memory Controller in der CPU integriert → AMD K8

Page 59: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

Intel P4 Dual-Processor-Board

Page 60: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

AMD K8Dual-Processor-Board

Page 61: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

AMD K8Dual-core Opteron

• Compiler: PGI, GCC-4

www AMD Core Math Library (ACML)

Page 62: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

13.3. Intel Itamium2

Dokumentation:

www http://www.intel.com/design/archives/processors/itanium/index.htm

Page 63: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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

– . . .

Page 64: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

Cache Hierarchie:

• 2 Bundles pro Takt

• 2 loads und 2 stores pro Takt (load 2 Takte Latenz)

Page 65: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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?

Page 66: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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

Page 67: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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.

Page 68: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

13.4. IBM Power 4

Page 69: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

• 2× MullAdd = 4 FPInst/Zyklus

• L1: 2 loads & 1 store für 2 Pipelines = 1.5 Zugriffe/Zyklus

Page 70: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

13.5. IBM Power 5 und Blue Gene

Page 71: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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.

Page 72: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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 <exe>collect -h cycles,0,ecstall,0 <exe>collect -h ecref,0,ecm <exe>collect -h dcr,0,dcrm,0 <exe>

er_print test.1.er test.2.er ...

Page 73: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

PraktikumWissenschaftliches Rechnen

# er_print help me(er_print) help

# show list of experiments(er_print) metric_list

# show results of experiments(er_print) fsingle <function>

# write source and compiler infos to file(er_print) scc [[all][pi][...]](er_print) outfile <file_name>(er_print) source <function>

--------------------------------------------------------------------------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)--------------------------+-----------------------------------------------

Page 74: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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.--------------------------+-----------------------------------------------

Page 75: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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

Page 76: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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 . . .

Page 77: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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

Page 78: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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

Page 79: Praktikum Wissenschaftliches Rechnen · Konzept des Praktikums Parallelität - Ebenen Klassifikation nach Flynn Vektorrechner - Aufbau Arithm. Operationen Leistungsanalyse Vektorisierte

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 79

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