Anda di halaman 1dari 15

Automatisches Parallelisieren

Vorlesung im Wintersemester 2009/10


Eberhard Zehendner
FSU Jena
Thema: Motivation
Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 1 / 15
FAQ zur Vorlesung Automatisches Parallelisieren
Soll ich diese Vorlesung wirklich hren?
Natrlich. Besonders bei Interesse fr Rechnerarchitektur!
Lerne ich in der Vorlesung, perfekte Programme zu schreiben?
Vielleicht. Auf jeden Fall aber Techniken, mit denen Compiler gute Optimierungen automatisch
durchfhren.
Muss ich an der bung teilnehmen?
Nein. Doch ein gutes, altes Sprichwort sagt: bung macht den Meister.
Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 2 / 15
Was moderne Prozessoren so alles knnen . . .
Da gibt es zum Beispiel . . .
berlappte Ausfhrung (instruction pipelining) MIPS
parallele Funktionseinheiten (superscalar, VLIW, EPIC) Pentium, TriMedia, IA-64
Ausfhrung auerhalb Programmreihenfolge (out-of-order) Pentium Pro
explizite Parallelitt (VLIW, EPIC) TriMedia, IA-64
grobkrnige Parallelitt (threads, CMP) IBM Power5
Teilwort-Parallelitt (SIMD, MMX etc.) Pentium III
Problem
Und wie wird das alles mglichst gut genutzt?
Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 3 / 15
. . . und hier einige klassische Rechnerarchitekturen
Explizit parallel programmiert werden zum Beispiel
Multiprozessoren
Cluster
Vektorrechner
Feldrechner
Fakt
Es ist noch kein explizit paralleles Programm vom Himmel gefallen . . .
Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 4 / 15
Anwendungen der Restrukturierung von Programmen
Restrukturierung von Programmen...
...ist semantikerhaltende Umformung von (geschriebenem / irgendwie prsentem) Programmcode
Anwendungsbereiche
Ablaufoptimierung (Scheduling)
Parallelisierung/Vektorisierung
und viele weitere, die in dieser Vorlesung aber nicht behandelt werden
Fakt
Fr RISC-Prozessoren, die ein sequenzielles Maschinenprogramm nach dem Fliebandprinzip
verarbeiten, ergeben sich gute Leistungsdaten i. A. nur durch Befehlsanordnung, d. h. durch
semantikerhaltendes Vertauschen von Maschinenbefehlen.
Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 5 / 15
Restrukturierung zur Ablaufoptimierung
Charakteristika von RISC-Prozessoren
sequenzieller Befehlsstrom als Eingabe
berlappte Verarbeitung nach dem Fliebandprinzip
optimiertes Verhalten durch Befehlsanordnung
Denition (Befehlsanordnung)
Vertauschen von Maschinenbefehlen
muss sequenzielle Semantik garantieren
Automatisierung unumgnglich
gute statische Befehlsanordnung hndisch nicht zu leisten
erfordert daher automatische Ablaufplanung (Scheduler)
dynamische Befehlsanordnung im Prozessor wirft hnliche Probleme auf
Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 6 / 15
Semantische quivalenz und Zeitverhalten
Beispiel (DLX-Pipeline mit Forwarding und Pipeline-Interlock)
ADD R3, R6, R7
LW R1, 0(R2)
SUB R4, R1, R5
in sequenzieller Semantik quivalent zu
LW R1, 0(R2)
ADD R3, R6, R7
SUB R4, R1, R5
Problem
Ist die Ausfhrung in der Pipeline gleich schnell?
Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 7 / 15
Datenabhngigkeiten behindern Arbeit der Pipeline
Stillstand der DLX-Pipeline durch Datenkonikt
Ladebefehl (LW) deniert gelesenen Wert (R1)
Subtraktionsbefehl (SUB) benutzt diesen Wert
Kausalitt: Denition vor Benutzung zwingend
Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 8 / 15
Unterschiedliche Ausfhrungsdauer trotz semantischer quivalenz
Stillstand durch Datenabhngigkeit
ADD R3, R6, R7
LW R1, 0(R2) ; Datenabhngigkeit erzwingt Stillstand
SUB R4, R1, R5
Zeitgewinn durch Befehlsanordnung
LW R1, 0(R2)
ADD R3, R6, R7 ; Latenz wird verborgen
SUB R4, R1, R5
Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 9 / 15
Gefahr durch Pipeline-Konikte
Pipeline-Konikte mssen behandelt werden
entweder durch die Hardware
oder durch den Compiler
sonst knnte die Programmsemantik verletzt werden
Beispiel (Pipeline ohne Koniktbehandlung)
LW R1, 0(R2)
SUB R4, R1, R5
Sequenzielle Semantik hier nicht quivalent zur Pipeline-Semantik!
Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 10 / 15
Alternative zur Umordnung: Einfgen von Leerbefehlen
Beispiel (Pipeline mit Forwarding, ohne Interlock)
Sequenzielle Semantik von
LW R1, 0(R2)
SUB R4, R1, R5
quivalent zu Pipeline-Semantik von
LW R1, 0(R2)
NOP ; Leerbefehl lst Datenkonikt
SUB R4, R1, R5
Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 11 / 15
Compiler fr Pipelines mit Koniktbehandlung
In-Order-Ausfhrung (z. B. Pentium)
Pipeline-Interlock garantiert korrekte Ausfhrung
aber: Pipeline kann Latenzen nicht verbergen
Befehlsanordnung durch Compiler sehr wichtig
Out-of-Order-Ausfhrung (Intel: ab Pentium Pro)
lokale Befehlsanordnung durch Pipeline
entscheidend: Gre des Befehlsfensters
Heuristiken ntig (z. B. Vorziehen von Ladebefehlen)
Compiler strker auf globale Befehlsanordnung orientieren
Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 12 / 15
Restrukturierung zur Parallelisierung
Extraktion von Parallelitt
sequenzielle Programme enthalten oft implizite Parallelitt
Parallelisierung: explizite Offenlegung verborgener Parallelitt
fhrt auf hnliche Probleme wie Befehlsanordnung fr sequenzielle Programme
Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 13 / 15
Automatische Parallelisierung
Parallelisierende/vektorisierende bersetzer
Eingabe: sequenzielles Programm
Ausgabe: explizit paralleles Programm mit derselben Semantik
Zielarchitektur: Parallelprozessor bzw. Vektorrechner
Schwerpunkt: parallele und/oder berlappte Ausfhrung von Anweisungsinstanzen aus dem
Inneren von Schleifen
Parallelisierung in der Pipeline (z. B. superskalarer RISC-Prozessor)
parallel und/oder berlappt ausfhrbare Maschinenbefehle werden dynamisch aus einem
sequenziellen Befehlsstrom bestimmt
parallele und/oder berlappte Ausfhrung beliebiger Anweisungsinstanzen
Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 14 / 15
Weiterfhrende Literatur
U. Brinkschulte, Th. Ungerer:
Mikrocontroller und Mikroprozessoren. Springer, 2002.
J. ilc, B. Robi c, Th. Ungerer:
Processor Architecture From Dataow to Superscalar and Beyond. Springer, 1999.
J. L. Hennessy, D. A. Patterson:
Computer Architectures: A Quantitative Approach. 2. Auage. Morgan Kaufmann, 1996.
M. K. Smotherman:
Understanding EPIC Architectures and Implementations.
Proc. 40th Annual ACM Southeast Conference, Raleigh, April 2002, pp. 71-78.
Online www.cs.clemson.edu/~mark/464/acmse_epic.pdf
Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 15 / 15