52
MIN-Fakultät Fachbereich Informatik 64-040 Modul InfB-RS: Rechnerstrukturen https://tams.informatik.uni-hamburg.de/ lectures/2018ws/vorlesung/rs – Kapitel 15 – Andreas Mäder Universität Hamburg Fakultät für Mathematik, Informatik und Naturwissenschaften Fachbereich Informatik Technische Aspekte Multimodaler Systeme Wintersemester 2018/2019 A. Mäder 1

64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Embed Size (px)

Citation preview

Page 1: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

MIN-FakultätFachbereich Informatik

64-040 Modul InfB-RS: Rechnerstrukturenhttps://tams.informatik.uni-hamburg.de/

lectures/2018ws/vorlesung/rs

– Kapitel 15 –

Andreas Mäder

Universität HamburgFakultät für Mathematik, Informatik und NaturwissenschaftenFachbereich InformatikTechnische Aspekte Multimodaler Systeme

Wintersemester 2018/2019

A. Mäder 1

Page 2: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Kapitel 1515 Parallelarchitekturen 64-040 Rechnerstrukturen

ParallelarchitekturenMotivationAmdahl’s GesetzSuperskalare RechnerKlassifikationSymmetric MultiprocessingLiteratur

A. Mäder 1091

Page 3: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Motivation: ständig steigende Anforderungen15.1 Parallelarchitekturen - Motivation 64-040 Rechnerstrukturen

I Simulationen, Wettervorhersage, Gentechnologie . . .I Datenbanken, Transaktionssysteme, Suchmaschinen . . .I Softwareentwicklung, Schaltungsentwurf . . .

I Performanz eines einzelnen Prozessors ist begrenzt⇒ Verteilen eines Programms auf mehrere Prozessoren

Vielfältige MöglichkeitenI wie viele und welche Prozessoren?I Kommunikation zwischen den Prozessoren?I Programmierung und Software/Tools?

A. Mäder 1092

Page 4: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Begriffe15.2 Parallelarchitekturen - Amdahl’s Gesetz 64-040 Rechnerstrukturen

I Antwortzeit: die Gesamtzeit zwischen Programmstart und-ende, inklusive I/O-Operationen, Unterbrechungen etc.(„wall clock time“, „response time“, „execution time“)performance = 1

execution time

I Ausführungszeit: reine CPU-ZeitUnix time-Befehl: 597.07u 0.15s 9:57.61 99.9%

597.07 user CPU time [sec.]0.15 system CPU time

9:57.61 elapsed time99.9 CPU/elapsed [%]

I Durchsatz: Anzahl der bearbeiteten Programme / Zeit

I Speedup: s = performance xperformance y = execution time y

execution time x

A. Mäder 1093

Page 5: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Wie kann man Performanz verbessern?15.2 Parallelarchitekturen - Amdahl’s Gesetz 64-040 Rechnerstrukturen

I Ausführungszeit = 〈Anzahl der Befehle〉 · 〈Zeit pro Befehl〉

I weniger BefehleI gute AlgorithmenI bessere CompilerI mächtigere Befehle (CISC)

I weniger Zeit pro BefehlI bessere TechnologieI Architektur: Pipelining, Caches . . .I einfachere Befehle (RISC)

I parallele AusführungI superskalare Architekturen, SIMD, MIMD

A. Mäder 1094

Page 6: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Amdahl’s Gesetz15.2 Parallelarchitekturen - Amdahl’s Gesetz 64-040 Rechnerstrukturen

Möglicher Speedup durch Beschleunigung einer Teilfunktion?1. System berechnet Programm P ,

darin Funktion X mit Anteil 0 < f < 1 der Gesamtzeit2. System berechnet Programm P ,

Funktion X ′ ist schneller als X mit Speedup SX

Amdahl’s Gesetz Gene Amdahl, Architekt der IBM S/360, 1967

I Speedup Sgesamt =1

(1− f ) + f =SX

A. Mäder 1095

Page 7: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Amdahl’s Gesetz (cont.)15.2 Parallelarchitekturen - Amdahl’s Gesetz 64-040 Rechnerstrukturen

Speedup Sgesamt =1

(1− f ) + f =SX

I nur ein Teil f des Gesamtproblems wird beschleunigt

(1-f)

. . .

aktiv

T

ff

parallelisierbarer aktivserieller1 CPU n CPUspotentiell

AnteilAnteil

(f/n)×T(1-f)×T

⇒ möglichst großer Anteil f⇒ Optimierung lohnt nur für relevante Operationen

allgemeingültig: entsprechend auch für Projektplanung, Verkehr . . .

A. Mäder 1096

Page 8: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Amdahl’s Gesetz (cont.)15.2 Parallelarchitekturen - Amdahl’s Gesetz 64-040 Rechnerstrukturen

I ursprüngliche Idee: Parallelrechner mit n-Prozessoren

Speedup Sgesamt =1

(1− f ) + k(n) + f =n

n #Prozessoren als Verbesserungsfaktorf Anteil parallelisierbarer Berechnung1− f Anteil nicht parallelisierbarer Berechnungk() Kommunikationsoverhead zwischen den Prozessoren

I Aufgaben verteilenI Arbeit koordinierenI Ergebnisse zusammensammeln

A. Mäder 1097

Page 9: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Amdahl’s Gesetz: Beispiele15.2 Parallelarchitekturen - Amdahl’s Gesetz 64-040 Rechnerstrukturen

SX f Sgesamt

10 0; 1 1=(0; 9 +0; 01) = 1; 12 0; 5 1=(0; 5 +0; 25) = 1; 332 0; 9 1=(0; 1 +0; 45) = 1; 821; 1 0; 98 1=(0; 02+0; 89) = 1; 14 0; 5 1=(0; 5 +0; 125) = 1; 6

4 536 0; 8 1=(0; 2 +0; 0 : : :) = 5; 09 072 0; 99 1=(0; 01+0; 0 : : :) = 98; 92

I Optimierung bringt nichts, wenn der nicht beschleunigte„serielle“ Anteil (1− f ) eines Programms überwiegt

− n-Prozessoren (große SX) wirken nicht linear− die erreichbare Parallelität in Hochsprachen-Programmen

ist gering, typisch Sgesamt ≤ 4

+ viele Prozesse/Tasks, unabhängig voneinander:Serveranwendungen, virtuelle Maschinen, Container . . .

A. Mäder 1098

Page 10: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Amdahl’s Gesetz: Beispiele (cont.)15.2 Parallelarchitekturen - Amdahl’s Gesetz 64-040 Rechnerstrukturen

0

2

4

6

8

10

0 0.2 0.4 0.6 0.8 1

f

Speedup 1/((1-f)+f/10)

SX = 10

A. Mäder 1099

Page 11: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Amdahl’s Gesetz: Beispiele (cont.)15.2 Parallelarchitekturen - Amdahl’s Gesetz 64-040 Rechnerstrukturen

0

2

4

6

8

10

1 2 3 4 5 6 7 8 9 10

n

Speedup n1/((1-0.9)+0.9/n)1/((1-0.8)+0.8/n)1/((1-0.5)+0.5/n)

A. Mäder 1100

Page 12: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Amdahl’s Gesetz: Beispiele (cont.)15.2 Parallelarchitekturen - Amdahl’s Gesetz 64-040 Rechnerstrukturen

0

20

40

60

80

100

0 0.2 0.4 0.6 0.8 1

f

Speedup 1/(1-f)

SX = ∞

A. Mäder 1101

Page 13: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Befehlspipeline15.3 Parallelarchitekturen - Superskalare Rechner 64-040 Rechnerstrukturen

[TA14]

I Befehl in kleinere, schnellere Schritte aufteilen ⇒ höherer TaktI mehrere Instruktionen überlappt ausführen ⇒ höherer Durchsatz

A. Mäder 1102

Page 14: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Parallele Pipelines15.3 Parallelarchitekturen - Superskalare Rechner 64-040 Rechnerstrukturen

[TA14]

I im Bild jeweils zwei Operationen pro PipelinestufeI parallele („superskalare“) Ausführung

I komplexe Hardware (Daten- und Kontrollabhängigkeiten)I Beispiel: Pentium

A. Mäder 1103

Page 15: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Superskalarer Prozessor15.3 Parallelarchitekturen - Superskalare Rechner 64-040 Rechnerstrukturen

I mehrere Rechenwerke (ALUs)I Verwaltung über „Scoreboard“

Erkennung von Datenabhängigkeiten

I sehr komplexe HardwareI aber gute PerformanzI Beispiel: fast alle x86-Prozessoren

seit Pentium II [TA14]

A. Mäder 1104

Page 16: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Superskalar15.3 Parallelarchitekturen - Superskalare Rechner 64-040 Rechnerstrukturen

I Superskalare CPUs besitzen mehrere Recheneinheiten: 4 . . . 10I in jedem Takt werden (dynamisch) mehrere Instruktionen eines

konventionell linearen Instruktionsstroms abgearbeitet⇒ ILP (Instruction Level Parallelism)

I Hardware verteilt initiierte Instruktionen auf RecheneinheitenI pro Takt kann mehr als eine Instruktion initiiert werden

Die Anzahl wird dynamisch von der Hardware bestimmt:0 . . . „Instruction Issue Bandwidth“

+ sehr effizient, alle modernen CPUs sind superskalar− Abhängigkeiten zwischen Instruktionen sind der Engpass,

das Problem der Hazards wird verschärft

A. Mäder 1105

Page 17: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Superskalar – Datenabhängigkeiten15.3 Parallelarchitekturen - Superskalare Rechner 64-040 Rechnerstrukturen

DatenabhängigkeitenI RAW – Read After Write

Instruktion Ix darf Datum erst lesen, wenn Ix−n geschrieben hatI WAR – Write After Read

Instruktion Ix darf Datum erst schreiben, wenn Ix−n gelesen hatI WAW – Write After Write

Instruktion Ix darf Datum erst überschreiben, wenn Ix−ngeschrieben hat

Datenabhängigkeiten superskalarer ProzessorenI RAW: echte Abhängigkeit; Forwarding ist kaum möglich und in

superskalaren Pipelines extrem aufwändigI WAR, WAW: „Register Renaming“ als Lösung

A. Mäder 1106

Page 18: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Superskalar – Datenabhängigkeiten (cont.)15.3 Parallelarchitekturen - Superskalare Rechner 64-040 Rechnerstrukturen

„Register Renaming“I Hardware löst Datenabhängigkeiten innerhalb der Pipeline aufI zwei Arten von Registersätzen

1. Architektur-Register: „logische Register“ der ISA2. viele Hardware-Register: „Rename Register“I dynamische Abbildung von ISA- auf Hardware-Register

I BeispielI Originalcode nach Renaming

tmp = a + b;res1 = c + tmp;tmp = d + e;res2 = tmp - f;

tmp1 = a + b;res1 = c + tmp1;tmp2 = d + e;res2 = tmp2 - f;tmp = tmp2;

I Parallelisierung des modifizierten Codestmp1 = a + b; tmp2 = d + e;res1 = c + tmp1; res2 = tmp2 - f; tmp = tmp2;

A. Mäder 1107

Page 19: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Superskalar – Pipeline15.3 Parallelarchitekturen - Superskalare Rechner 64-040 Rechnerstrukturen

Aufbau der superskalaren Pipeline

I lange Pipelines mit vielen Phasen: Fetch (Prefetch, Predecode),Decode / Register-Renaming, Issue, Dispatch, Execute, Retire(Commit, Complete / Reorder), Write-Back

I je nach Implementation unterschiedlich aufgeteiltI entscheidend für superskalare Architektur sind die Schritte

vor den ALUs: Issue, Dispatch ⇒ out-of-order Ausführungnach -"- : Retire ⇒ in-order Ergebnisse

A. Mäder 1108

Page 20: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Superskalar – Pipeline (cont.)15.3 Parallelarchitekturen - Superskalare Rechner 64-040 Rechnerstrukturen

I Dynamisches Scheduling⇒ out-of-order Reihenfolge

der Instruktionen

A. Mäder 1109

Page 21: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Superskalar – Pipeline (cont.)15.3 Parallelarchitekturen - Superskalare Rechner 64-040 Rechnerstrukturen

I Issue: globale SichtDispatch: getrennte Ausschnitte in „Reservation Stations“

A. Mäder 1110

Page 22: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Superskalar – Pipeline (cont.)15.3 Parallelarchitekturen - Superskalare Rechner 64-040 Rechnerstrukturen

I Reservation Station für jede FunktionseinheitI speichert: initiierte Instruktionen die auf Recheneinheit wartenI –"– zugehörige OperandenI –"– ggf. ZusatzinformationI Instruktion bleibt blockiert, bis alle Parameter bekannt sind und

wird dann an die zugehörige ALU weitergeleitet

I ggf. „Retire“-StufeI Reorder-Buffer: erzeugt wieder in-order ReihenfolgeI commit: „richtig ausgeführte“ Instruktionen gültig machen

abort: Instruktionen verwerfen, z.B. Sprungvorhersage falsch

I Dynamisches Scheduling: zuerst ’67 in IBM360 (R. Tomasulo)I ForwardingI Registerumbenennung und Reservation Stations

A. Mäder 1111

Page 23: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Superskalar – Probleme15.3 Parallelarchitekturen - Superskalare Rechner 64-040 Rechnerstrukturen

Spezielle Probleme superskalarer Pipelines− weitere Hazard-Möglichkeiten

I die verschiedenen ALUs haben unterschiedliche LatenzzeitenI Befehle „warten“ in den Reservation Stations⇒ Datenabhängigkeiten können sich mit jedem Takt ändern

− Kontrollflussabhängigkeiten:Anzahl der Instruktionen zwischen bedingten Sprüngenlimitiert Anzahl parallelisierbarer Instruktionen

⇒ „Loop Unrolling“ besonders wichtig+ optimiertes (dynamisches) Scheduling: Faktor 3 möglich

A. Mäder 1112

Page 24: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Superskalar – Probleme (cont.)15.3 Parallelarchitekturen - Superskalare Rechner 64-040 Rechnerstrukturen

Softwareunterstützung für Pipelining superskalarer Prozessoren„Software Pipelining“I Codeoptimierungen beim Compilieren als Ersatz/Ergänzung

zur Pipelineunterstützung durch HardwareI Compiler hat „globalen“ Überblick

⇒ zusätzliche Optimierungsmöglichkeiten

A. Mäder 1113

Page 25: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Superskalar – Ausnahmebehandlung15.3 Parallelarchitekturen - Superskalare Rechner 64-040 Rechnerstrukturen

Interrupts, System-Calls und ExceptionsI Pipeline kann normalen Ablauf nicht fortsetzenI Ausnahmebehandlung ist wegen der Vielzahl paralleler Aktionen

und den Abhängigkeiten innerhalb der Pipelines extrem aufwändigI einige Anweisungen können verworfen werden− andere Pipelineaktionen müssen vollendet werden

benötigt zusätzliche Zeit bis zur Ausnahmebehandlung− wegen Register-Renaming muss viel mehr Information gerettet

werden als nur die ISA-Register

A. Mäder 1114

Page 26: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Superskalar – Ausnahmebehandlung (cont.)15.3 Parallelarchitekturen - Superskalare Rechner 64-040 Rechnerstrukturen

Prinzip der InterruptbehandlungI keine neuen Instruktionen mehr initiierenI warten bis Instruktionen des Reorder-Buffers abgeschlossen sindI Verfahren ist von der „Art“ des Interrupt abhängig

I Precise-Interrupt: Pipelineaktivitäten komplett BeendenI Imprecise-Interrupt: wird als verzögerter Sprung

(Delayed-Branching) in Pipeline eingebrachtZusätzliche Register speichern Information über Instruktionendie in der Pipeline nicht abgearbeitet werden können(z.B. weil sie den Interrupt ausgelöst haben)

I Definition: Precise-InterruptI Programmzähler (PC) zur auslösenden Instruktion ist bekanntI alle Instruktionen bis zur PC-Instr. wurden vollständig ausgeführtI keine Instruktion nach der PC-Instr. wurde ausgeführtI Ausführungszustand der PC-Instruktion ist bekannt

A. Mäder 1115

Page 27: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Beispiel: Pentium 4 / NetBurst Architektur15.3 Parallelarchitekturen - Superskalare Rechner 64-040 Rechnerstrukturen

I superskalare Architektur (mehrere ALUs)I CISC-Befehle werden dynamisch in „—OPs“ (1 . . . 3) umgesetztI Ausführung der —OPs mit „Out of Order“ Maschine, wenn

I Operanden verfügbar sindI funktionelle Einheit (ALU) frei ist

I Ausführung wird durch „Reservation Stations“ kontrolliertI beobachtet die Datenabhängigkeiten zwischen —OPsI teilt Ressourcen zu

I „Trace“ CacheI ersetzt traditionellen AnweisungscacheI speichert Anweisungen in decodierter Form: Folgen von —OPsI reduziert benötigte Rate für den Anweisungsdecoder

I „Double pumped“ ALUs (2 Operationen pro Taktzyklus)

A. Mäder 1116

Page 28: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Beispiel: Pentium 4 / NetBurst Architektur (cont.)15.3 Parallelarchitekturen - Superskalare Rechner 64-040 Rechnerstrukturen

I große Pipelinelänge ⇒ sehr hohe Taktfrequenzen

1 2 3 4 5 6 7 8 9 010

tFetch F cFetch Decode D cDecode DDecode naRename ROB Rd Rdy/ h/Sch pa cDispatch Exec

asic Penti II Pr ce sor Basic Pentium III Processor is dic ionMisprediction Pi lin Pipeline

B s Pe tium Proc ss r Basic Pentium 4 Processor i pr d tionMisprediction pe e Pipeline

1 2 3 4 55 6 7 8 99 10 11 12

TC Nxt PIP tTC Fetch vDrive lAlloc Rename Que Sch Sch Sch

13 14

D pDisp Disp

15 616 117 118 19 20

RF Ex Flgs kBr Ck D iv Drive RF

I umfangreiches Material von Intel unter:ark.intel.com, www.intel.com

A. Mäder 1117

Page 29: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Beispiel: Pentium 4 / NetBurst Architektur (cont.)15.3 Parallelarchitekturen - Superskalare Rechner 64-040 Rechnerstrukturen

A o o / er RenAllocator / Register Renamer

M o Memory uuop u Queue n g F atin Po t Integer/Floating Point p uop Queue

Reg / B p sFP Register / Bypass

FP

XMMX

SSSE

E2SSE2

PFP

veMove

Simple FP

ata ( byte 4-wL1 Data Cache (8Kbyte 4-way)

Memory Scheduler Fast Slow/General FP Scheduler

e i r Integer Register File / Bypass Network

mp xComplex

nstr.Instr.

S w LSlow ALU

i eSimple

Instr.

2 A2x ALU

eSimple

n tInstr.

2 A2x ALU

aLoad

Address

AAGU

S rStore

dAddress

A UAGU

2 6 bit256 bits

6 - s wide64-bits wide

Q adQuad

mpePumped

3 2 /3.2 GB/s

uBus

f eInterface

Unit

S s eSystem

BusBus

2 hL2 Cache

(256K Byte(256K Byte

8-way8-way)

448GB/s

I stru t oInstruction

LTLB/PrefetchPrefetchern Front-End BTB

(4 (4K Entries)

n i n De dInstruction Decoder

T ce chTrace Cache

1 (12K µµ pops)T C he BTTrace Cache BTB

( 12 n(512 Entries)

r c dMicrocode

RROM

µoop Q e e Queue

Figure 4: Pentium

® 4 processor microarchitecture Intel: Q1, 2001 [Intel]

A. Mäder 1118

Page 30: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Beispiel: Core 2 Architektur15.3 Parallelarchitekturen - Superskalare Rechner 64-040 Rechnerstrukturen

128 Entry ITLB

32 KB Instruction Cache(8 way)

32 Byte Pre-Decode, Fetch Buffer

InstructionFetch Unit

18 Entry Instruction Queue

7+ Entry µop Buffer

Register Alias Table and Allocator

96 Entry Reorder Buffer (ROB)Retirement Register File(Program Visible State)

Shared Bus Interface

Unit

Shared L2 Cache(16 way)

256 EntryL2 DTLB

Micro-code

ComplexDecoder

SimpleDecoder

SimpleDecoder

SimpleDecoder

32 Entry Reservation Station

ALU ALUSSE

ShuffleALU

SSEShuffleMUL

ALUBranch

SSEALU

128 BitFMULFDIV

128 BitFADD

StoreAddress

StoreData

LoadAddress

Memory Ordering Buffer(MOB)

32 KB Dual Ported Data Cache(8 way)

16 Entry DTLB

Port 0 Port 1 Port 2Port 3 Port 4Port 5

Internal Results BusLoadStore

128 Bit128 Bit

4 µops

4 µops

4 µops

4 µops 1 µop 1 µop 1 µop

128 Bit

6 Instructions

4 µops

256 Bit

Intel Core 2 Architecture

A. Mäder 1119

Page 31: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Parallelrechner mit mehreren Prozessoren15.4 Parallelarchitekturen - Klassifikation 64-040 Rechnerstrukturen

I Taktfrequenzen > 10GHz nicht sinnvoll realisierbarI hoher Takt nur bei einfacher Hardware möglichI Stromverbrauch bei CMOS proportional zum Takt

⇒ mehrere ProzessorenDatenaustausch: „Shared-memory“ oder Verbindungsnetzwerk

− Overhead durch Kommunikation− Programmierung ist ungelöstes ProblemI aktueller Kompromiss: bus-basierte „SMPs“ mit 2 . . . 16 CPUs

A. Mäder 1120

Page 32: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Flynn-Klassifikation15.4 Parallelarchitekturen - Klassifikation 64-040 Rechnerstrukturen

SISD „Single Instruction, Single Data“I jeder klassische von-Neumann Rechner (z.B. PC)

SIMD „Single Instruction, Multiple Data“I Vektorrecher/Feldrechner

z.B. Connection-Machine 2: 65 536 ProzessorenI Erweiterungen in Befehlssätzen: superskalare

Recheneinheiten werden direkt angesprochenz.B. x86 MMX, SSE, VLIW-Befehle: 2 . . . 8 fach parallel

MIMD „Multiple Instruction, Multiple Data“I Multiprozessormaschinen

z.B. Compute-Cluster, aber auch Multi-Core CPUMISD „Multiple Instruction, Single Data“ :-)

A. Mäder 1121

Page 33: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Detaillierte Klassifikation15.4 Parallelarchitekturen - Klassifikation 64-040 Rechnerstrukturen

MIMD

parallele Rechnerarchitektur

Multi-Computer

SISD SIMD

Gitter Hyper-würfel

MPPCOW

Multi-prozessoren

UMA COMA

Bus Switch CC-NUMA NC-NUMA

NUMA

gemeinsamer Speicher Nachrichtenaustausch

Vektor-prozessor

Array-prozessor

MISD

[TA14]

A. Mäder 1122

Page 34: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

SIMD: Vektorrechner Cray-1 (1976)legendärer „Supercomputer“15.4 Parallelarchitekturen - Klassifikation 64-040 Rechnerstrukturen

I Prinzip: Anwendung eines Rechen-Befehls auf alle Elementevon Vektoren/Matrizen

I Adressberechnung mit „Stride“I „Chaining“ von VektorbefehlenI schnelle skalare BefehleI ECL-Technologie, Freon-KühlungI 1662 Platinen (Module),

über Kabel verbundenI 80MHz Takt, 136MFLOPS

A. Mäder 1123

Page 35: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

SIMD: Feldrechner Illiac-IV (1964 . . . 1976)15.4 Parallelarchitekturen - Klassifikation 64-040 Rechnerstrukturen

[Tan06]

I ein zentraler SteuerprozessorI 64 Prozessoren/ALUs und Speicher, 8× 8 MatrixI Befehl wird parallel auf allen Rechenwerken ausgeführtI aufwändige und teure ProgrammierungI oft schlechte Auslastung (Parallelität Algorithmus vs. #CPUs)

A. Mäder 1124

Page 36: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

MIMD: Konzept15.4 Parallelarchitekturen - Klassifikation 64-040 Rechnerstrukturen

[TA14]

I mehrere Prozessoren, über Bus/Netzwerk verbundenI gemeinsamer („shared“) oder lokaler SpeicherI unabhängige oder parallele Programme / MultithreadingI sehr flexibel, zunehmender Markterfolg

A. Mäder 1125

Page 37: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

MIMD: Shared-Memory15.4 Parallelarchitekturen - Klassifikation 64-040 Rechnerstrukturen

[TA14]

I mehrere CPUs, aber gemeinsamer SpeicherI jede CPU bearbeitet nur eine TeilaufgabeI CPUs kommunizieren über den gemeinsamen SpeicherI Zuordnung von Teilaufgaben/Speicherbereichen zu CPUs

A. Mäder 1126

Page 38: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

MIMD: Message-Passing15.4 Parallelarchitekturen - Klassifikation 64-040 Rechnerstrukturen

[TA14]

I jede CPU verfügt über eigenen (privaten) SpeicherI Kommunikation über ein VerbindungsnetzwerkI Zugriff auf Daten anderer CPUs evtl. recht langsam

A. Mäder 1127

Page 39: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Verbindungs-Netzwerke15.4 Parallelarchitekturen - Klassifikation 64-040 Rechnerstrukturen

[TA14]

A. Mäder 1128

Page 40: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Verbindungs-Netzwerke (cont.)15.4 Parallelarchitekturen - Klassifikation 64-040 Rechnerstrukturen

[TA14]

A. Mäder 1129

Page 41: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Kreuzschienenverteiler („Crossbar Switch“)15.4 Parallelarchitekturen - Klassifikation 64-040 Rechnerstrukturen

[TA14]

I jede CPU kann auf jeden Speicher zugreifenI hoher Hardwareaufwand: O(n2) Schalter und VerbindungenI Konflikte bei gleichzeitigem Zugriff auf einen Speicher

A. Mäder 1130

Page 42: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Omega-Netzwerk15.4 Parallelarchitekturen - Klassifikation 64-040 Rechnerstrukturen

[TA14]

I Schalter „gerade“ oder „gekreuzt“:I jede CPU kann auf jeden Speicher zugreifenI aber nur bestimmte Muster, Hardwareaufwand O(n · ln n)

A. Mäder 1131

Page 43: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Skalierbarkeit15.4 Parallelarchitekturen - Klassifikation 64-040 Rechnerstrukturen

[TA14]

Wie viele CPUs kann man an ein System anschliessen?I Bus: alle CPUs teilen sich die verfügbare Bandbreite⇒ daher normalerweise nur 2 . . . 8 CPUs sinnvoll

I Gitter: verfügbare Bandbreite wächst mit Anzahl der CPUs

A. Mäder 1132

Page 44: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Speedup15.4 Parallelarchitekturen - Klassifikation 64-040 Rechnerstrukturen

[TA14]

I Maß für die Effizienz einer Architektur / eines Algorithmus’I wegen Amdahl’s Gesetz maximal linearer ZuwachsI je nach Problem oft wesentlich schlechter

A. Mäder 1133

Page 45: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Parallelarchitekturen – Anmerkungen15.4 Parallelarchitekturen - Klassifikation 64-040 Rechnerstrukturen

I Programmierung: ein ungelöstes ProblemI Aufteilung eines Programms auf die CPUs/Rechenknoten?I insbesondere bei komplexen Kommunikationsnetzwerken

I Programme sind nur teilweise parallelisierbarI Parallelität einzelner Programme: kleiner 8

gilt für Desktop-, Server-, Datenbankanwendungen etc.⇒ hochgradig parallele Rechner sind dann Verschwendung

I Wohin mit den Transistoren aus „Moore’s Law“?⇒ SMP-/Mehrkern-CPUs (4 . . . 32 Proz.) sind technisch attraktiv

I Vektor-/Feld-Rechner für Numerik, Simulation . . .I Grafikprozessoren (GPUs) sind Feld-RechnerI neben 3D-Grafik zunehmender Computing-Einsatz (OpenCL)I hohe Fließkomma-Rechenleistung (single precision)

A. Mäder 1134

Page 46: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

SMP: Symmetric Multiprocessing15.5 Parallelarchitekturen - Symmetric Multiprocessing 64-040 Rechnerstrukturen

I mehrere Prozessoren nutzen gemeinsamen HauptspeicherI Zugriff über Verbindungsnetzwerk oder BusI geringer Kommunikationsoverhead+ Bus-basierte Systeme sind sehr kostengünstig− aber schlecht skalierbar (Bus als Flaschenhals, s.o.)− Konsistenz der Daten

I lokale Caches für gute Performanz notwendigI Hauptspeicher und Cache(s): Cache-Kohärenz

MESI-Protokoll und „Snooping“ 18-Kern Xeon E7 v3 [Intel]

→ siehe Kapitel „16 Speicherhierarchie“I Registerinhalte: ? problematisch

− Prozesse wechseln CPUs: „Hopping“I Multi-Core Prozessoren sind „SMP on-a-chip“

A. Mäder 1135

Page 47: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

SMP: Eigenschaften15.5 Parallelarchitekturen - Symmetric Multiprocessing 64-040 Rechnerstrukturen

Symmetric MultiprocessingI alle CPUs gleichrangig, Zugriff auf Speicher und I/OI Konsistenz: Gleichzeitiger Zugriff auf eine Speicheradresse?

P1

P2

P3

P4

read

write 200

write 100

read

read

CPUsMemory W1→ 100 W1→ 100 W2→ 200

W2→ 200 R3 ← 100 R4 ← 200R3 ← 200 W2→ 200 R3 ← 200R3 ← 200 R3 ← 200 W1→ 100R4 ← 200 R4 ← 200 R3 ← 100

⇒ „Locking“ Mechanismen und MutexeI spez. Befehle, atomare Operationen, Semaphore etc.I explizit im Code zu programmieren

A. Mäder 1136

Page 48: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

SMP: Cache-Kohärenz15.5 Parallelarchitekturen - Symmetric Multiprocessing 64-040 Rechnerstrukturen

Cache für schnelle Prozessoren notwendigI jede CPU hat eigene Cache (L1, L2 . . . )I aber gemeinsamer Hauptspeicher

Problem der Cache-KohärenzI Prozessor P2 greift auf Daten zu, die im Cache von P1 liegen

I P2 Lesezugriff: P1 muss seinen Wert P2 liefernI P2 Schreibzugriff: P1 muss Wert von P2 übernehmen

oder seinen Cache ungültig machenI Was ist mit gleichzeitigen Zugriffen von P1, P2?

I diverse Protokolle zur Cache-Kohärenz→ siehe Kapitel „16 Speicherhierarchie“I z.B. MESI-Protokoll mit „Snooping“

Modified, Exclusive, Shared, InvalidI Caches enthalten Wert, Tag und 2 bit MESI-Zustand

A. Mäder 1137

Page 49: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

SMP: volatile15.5 Parallelarchitekturen - Symmetric Multiprocessing 64-040 Rechnerstrukturen

I MESI-Verfahren garantiert Cache-Kohärenzfür Werte im Cache und im Hauptspeicher

Vorsicht: Was ist mit den Registern?I Variablen in Registern werden von MESI nicht erkanntI Compiler versucht, häufig benutzte Variablen soweit wie

möglich in Registern zu haltenI globale/shared-Variablen niemals in Registern haltenI Java, C: Deklaration als volatile

A. Mäder 1138

Page 50: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

SMP: Erreichbarer Speedup (bis 32 Threads)15.5 Parallelarchitekturen - Symmetric Multiprocessing 64-040 Rechnerstrukturen

Figure 4. Maximum speedup achieved on up to 32 threads over single-

threaded execution (black bars) and minimum number of threads at which

the maximum speedup occurred (gray bars).

M.J .Bridges et.al.: Revisiting the Sequential Programming Model for the Multicore Era, IEEE Micro 2008 [Br+08]A. Mäder 1139

Page 51: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Literatur15.6 Parallelarchitekturen - Literatur 64-040 Rechnerstrukturen

[TA14] A.S. Tanenbaum, T. Austin: Rechnerarchitektur –Von der digitalen Logik zum Parallelrechner.6. Auflage, Pearson Deutschland GmbH, 2014.ISBN 978–3–8689–4238–5

[Tan06] A.S. Tanenbaum:Computerarchitektur – Strukturen, Konzepte, Grundlagen.5. Auflage, Pearson Studium, 2006. ISBN 3–8273–7151–1

[Intel] Intel Corp.; Santa Clara, CA.www.intel.com ark.intel.com

[HP17] J.L. Hennessy, D.A. Patterson:Computer architecture – A quantitative approach.6th edition, Morgan Kaufmann Publishers Inc., 2017.ISBN 978–0–12–811905–1

A. Mäder 1140

Page 52: 64-040- Modul InfB-RS: Rechnerstrukturen · Kapitel15 15Parallelarchitekturen 64-040Rechnerstrukturen Parallelarchitekturen Motivation Amdahl’sGesetz SuperskalareRechner Klassifikation

Literatur (cont.)15.6 Parallelarchitekturen - Literatur 64-040 Rechnerstrukturen

[PH17] D.A. Patterson, J.L. Hennessy: Computer Organizationand Design – The Hardware Software Interface – RISC-VEdition.Morgan Kaufmann Publishers Inc., 2017.ISBN 978–0–12–812275–4

[PH16b] D.A. Patterson, J.L. Hennessy: Rechnerorganisationund Rechnerentwurf – Die Hardware/Software-Schnittstelle.5. Auflage, Oldenbourg, 2016. ISBN 978–3–11–044605–0

[Br+08] M.J. Bridges [u. a.]: Revisiting the SequentialProgramming Model for the Multicore Era.in: IEEE Micro 1 Vol. 28 (2008), S. 12–20.

A. Mäder 1141