4 Parallelisierungstechniken und Rechnerabbildung

Werbung
4 Parallelisierungstechniken und Rechnerabbildung
Thema des Kapitels
Wie lassen sich Probleme aus Computational Science /
Computational Engineering parallelisieren?
Wie bilde ich diese auf Rechnerarchitekturen ab?
Komplexität beherrschen durch Gliedern in Ebenen /
Schichten
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
1
Auffinden von Nebenläufigkeit - Abhängigkeitsanalyse (4.1)
Algorithmische Ebene (4.2)
Architekturebene (4.3)
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
Entwurfsprozess beim Auffinden von Nebenläufigkeit
Abb. 4.1
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
2
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
Erklärung:
Voraussetzung für die Parallelisierung ist die Verfügbarkeit
ausreichender Nebenläufigkeit
Erfordert eine Zerlegung des Problems
Auffinden von rechenintensiven Anteilen bei serieller
Berechnung
Ausgangsproblem in parallel ausführbare Teilrechenschritte
zerlegen
Abbildung auf algorithmische Konstrukte
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
3
Zuordnung in mehrere Befehlsfolgen - Tasks
(engl.: task decomposition)
Gruppierung von Tasks
Ordnung unter den Tasks festlegen
Datenabhängigkeiten der Tasks auffinden
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
Beispiel: Molekulardynamik
Simulation von Bewegungen im molekularen System
Grundlegende Idee der Simulation: Modellierung der
Moleküle als große Anzahl von Kugeln
Vorlesung
Computational
Engineering I
WS 2009/10
Simulation im Zeitschritt-Verfahren
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
4
Berechnung von einwirkenden Kräften auf Atome
Bestimmung der Kräfteverschiebung von Atomen mittels
mechanischer Gesetzmäßigkeiten
Wiederholung für mehrere aufeinanderfolgende Zeitschritte
Ergebnis: Bestimmung der Bewegungsbahn der Atome und
des Moleküls
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
Analyse Berechnungsaufwand:
Chemische Bindungskräfte (gebundene Kräfte)
vergleichsweise unproblematisch hinsichtlich Berechnung
Kräfte bestimmt durch Vibrationen und Rotationen, die nur über
kurze Distanzen wirken
Elektrische Kräfte (ungebundenen) rechentechnisch
problematisch
Vorlesung
Computational
Engineering I
WS 2009/10
Wirkung auf jedes Atom
Vielteilchenproblem oder N-Körper-Problem
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
5
Berechnungen in Größenordnung N2
N Größenordnung von Zehn- oder Hunderttausend Atomen
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
Cut-off-Methode
Betrachtung eingeschränkter Nachbarschaft
z.B. nur die nächsten n entfernten Atome (n = 100)
→ Reduzierung des Aufwandes von O(N2) auf O(N x n)
Berechnung ungebundener Kräfte trotzdem immens
Bestimmt maßgeblich Rechenzeit in molekular-dynamischer
Simulation
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
6
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
Grobstrukturierung des Algorithmus zur Simulation in
der Molekulardynamik
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
7
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
Zu Beginn definierte Datenstrukturen
atoms:
speichert Position der Atome im Raum
velocities:
Geschwindigkeit der Atome
forces: auf ein Atom wirkende Kräfte
neighbors:
die innerhalb der Cut-off Distanz liegenden
Nachbaratome
Programm in Schleife eingebaut
Vorlesung
Computational
Engineering I
WS 2009/10
Entspricht diskreten Zeitschritten
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
8
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
Schleifeninhalt
Berechnung der Bindungskräfte
Nachbarliste aktualisieren
Aufwändige Berechnung des Einflusses elektrischer Kräfte
Bestimmung physikalischer Eigenschaften am Ende einer
Iteration, z.B. energetische Kräfte oder Korrelationen
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
9
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
Zerlegungen in Tasks
Quasi-natürliche Zerlegung
Pro Atom eine Task
Noch weitere Verfeinerung: Zerlegung hinsichtlich der
zeitlichen Abfolge
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
10
Tasks zur Berechnung der auf ein Atom durch Vibration
bedingten Kräfte
Tasks zur Berechnung der auf ein Atom durch Rotation
bedingten Kräfte
Tasks zur Berechnung der auf ein Atom wirkenden nichtgebundenen Kräfte
Tasks zur Berechnung der neuen Position und Geschwindigkeit
eines Atoms
Eine Task, welche die Erneuerung der Nachbarliste vornimmt
– kann sequentiell erfolgen, da die Erneuerung nur jeweils
alle 10 bis 100 Zeitschritte erfolgt,
– Da die Bewegung eines Atoms pro Zeitschritt gering ist.
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
Gruppieren und Ordnen von Tasks
Bestimmen, welche Aufgaben zeitlich unabhängig / abhängig
sind
Unabhängig:
– Berechnen ungebundener Kräfte: Rotation und Vibration
-> zusammenfassbar
– Berechnen gebundener und ungebundener Kräfte
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
11
Abhängig:
– Berechnung ungebundener Kräfte von Cut-OffNachbarschaft
– Aktualisierung von Position und Geschwindigkeit der
Atome abhängig von wirkenden Kräften
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
Ergebnis: zeitliche Rangordnung der Taskgruppen
Abb. 4.4 einfügen
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
12
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
Zerlegung der Daten des Problemraumes
Aufgabe: anhand der vorgenommenen Taskzerlegung
entscheiden,
wie die für die Berechnung erforderlichen Daten des
Problemraums verteilt werden müssen
Zerlegung grob in zwei Klassen einteilbar
Vorlesung
Computational
Engineering I
WS 2009/10
Zerlegung von ein- oder mehrdimensionalen Problemräumen in
verschiedene Segmente, z. B. in Zeilen, Spalten, Quadern oder
allgemein in Blöcke verschiedener Größe
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
13
Rekursive Datenzerlegung, die z. B. bei der Zerlegung einer
Baumstruktur in Unterbäume angewandt wird
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
Beispiel Molekulardynamik
Ausgangssituation: folgende Schlüsseldatenstrukturen
ein Feld mit Koordinaten der Atome, mit einem Eintrag im Feld
pro Atom
ein Feld von Geschwindigkeiten der Atome, mit einem Eintrag
im Feld pro Atom
ein Feld von Listen, mit jeweils einer Liste pro Atom, in denen
die innerhalb der Cuttoff-Distanz liegenden benachbarten
Atome gegeben sind
ein Feld mit Kräften, die auf ein Atom wirken, mit einem Eintrag
im Feld pro Atom
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Folgende Auf- bzw. Zuteilungen
Lehrstuhl
Informatik 3 Rechnerarchitektur
14
Geschwindigkeit des Atoms wird nur von dafür zuständiger
Task benötigt
bei Berechnung mehrerer Atome pro Task erhält zuständige
Task alle Geschwindigkeiten
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
andere Situation im Koordinatenfeld, jede Task benötigt Zugriff
auf das gesamte Koordinatenfeld
– Berechnung der Cut-off Nachbarschaft
– Berechnung einwirkender Kräfte
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
15
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
Berechnung der Kräfte: Ausnutzen des dritten
Newtonsche Gesetzes
wechselseitige Kraft F, die zwischen zwei Massen i und j
wirken, sind negativ symmetrisch, d. h. Fij = –Fji
Erklärung Zeichnung Tafel:
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
16
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
Datenaufteilung:
Nur lesend
Daten müssen nicht geschützt werden
Bei lose-gekoppelten System (Cluster, Grid) Replikation der
Daten von zentraler Stelle (Platte) zu Beginn sinnvoll
Ausschließlich lokaler Zugriff
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
17
Ebenfalls Replizieren zu Beginn sinnvoll
Am Ende der Berechnung Rückübertragen zu zentraler Stelle
sinnvoll
– Bei Feldern Rückübertragung direkt
– Listen können Nachbearbeitung erforderlich machen
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
Forts. Datenaufteilung:
Lesender und schreibender Zugriff gleichzeitig von mehr als
einer Task
Erfordert Schutzmaßnahmen
– Z.B. Semaphoren
Eventuell Akkumulieren erforderlich
– Von Tasks berechnete Teilergebnisse werden unter
bestimmter assoziativer Operation (add,mul,min,max, …)
am Ende zu einem gemeinsamen Ergebnis akkumuliert
– Bei Rückübertragung Operation ausführen
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
18
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
Entwurfsbewertung
gegeben:
Aufteilung in Task und Daten
Datenabhängigkeiten
Bewertung hinsichtlich
Eignung für die Zielplattform (Rechnerarchitektur)
Entwurfsqualität
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
19
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
Eignung für die Zielplattform
folgenden Fragen kritisch stellen:
Hinsichtlich Anzahl verfügbarer Rechnerknoten
Anzahl Rechnerknoten > Tasks
Anzahl Rechnerknoten < Tasks
Aufteilung von Datenstrukturen zwischen Rechnerknoten
fein-granulare Aufteilung für eng gekoppelte
Parallelrechnerumgebungen geeignet
– z.B. speichergekoppeltes Multiprozessorsystem mit Ein-,
Mehr- oder Vielkernprozessoren
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
20
fein-granulare Aufteilung für Architektur auf Basis eines
verteilten Speichers oder nachrichtengekoppelten Clusteroder Multi-Cluster-Rechner eher ungeeignet
– Evtl. zu viel Kommunikation
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
Rechenaufwand in Abhängigkeit der Datenbestände
Verhältnis
Rechenzeit / (Zeit für Kommunikation + Synchronisation)
Wünschenswert: möglichst groß, aber auch nicht zu groß
– Warum?
Gleichverhältnis auch akzeptabel
– Zeitliche Überlappung zwischen Berechnung und
Kommunikation / Synchronisation
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
21
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
Entwurfsqualität
Bewertung nach Flexibilität, Effizienz, Einfachheit
unter Berücksichtigung der Zielplattform
Flexibilität
Taskzerlegung angepasst an Vielzahl unterschiedlicher
Rechner?
Lastverteilung ungleich vorzunehmen, wenn Rechner
unterschiedlich leistungsstark
Dynamischer Lastausgleich, d.h. zur Laufzeit, notwendig?
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
22
Datenzerlegung auf Anzahl Knoten adäquat?
Beispiel: Matrixdimension nicht ohne Rest aufteilbar auf Anzahl
Rechnerknoten
4 Parallelisierungstechniken und Rechnerabbildung
4.1. Auffinden von Nebenläufigkeit
Effizienz
Werden Ressourcen gut ausgelastet?
Kommunikationskanäle, evtl. besser eine große Nachricht als
viele kleine Nachrichten übertragen, um Overhead
(Zusatzaufwand) nur einmal zu leisten
Einfachheit
Lösung einsichtig, wartbar
Gilt generell für jegliche Software-Lösung, unabhängig ob
Business, HPC …
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
23
4 Parallelisierungstechniken und Rechnerabbildung
4.2. Algorithmische Ebene
Ziel der algorithmischen Ebene
Verfeinerung der bisherigen Darstellung in Richtung eines
Programms,
dass Abbildung verschiedener Tasks auf mehrere
Rechenknoten unterstützt
Vielfältige Möglichkeiten der Abbildung gegeben
Folgende (nicht notwendigerweise disjunkte) sechs
Strategien gegeben
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
24
Abbildung peinlich paralleler Probleme
Teile und Herrsche
Geometrische Zerlegung
Rekursive Zerlegung
Pipelineverarbeitung
Ereignis-gesteuerte Koordination
4 Parallelisierungstechniken und Rechnerabbildung
4.2. Algorithmische Ebene
Sechs Strategien in drei Bereiche gliederbar
Bestimmt von der Organisation durch Tasks, Datenaufteilung
oder Datenfluss
Linear
Statische Organisation
Rekursiv: dynamische Organisation, Veränderung zur Laufzeit
möglich
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
25
4 Parallelisierungstechniken und Rechnerabbildung
4.2. Algorithmische Ebene
Organisation durch Tasks
Task-parallele oder peinlich parallele Abbildung
Problemstellung in völlig-unabhängige Probleme aufteilbar
Keine Kommunikation zwischen Tasks
Probleme dieser Klasse werden häufig als peinlich-parallel
oder inhärent parallel bezeichnet
Lineares Ordnungsprinzip
Vorlesung
Computational
Engineering I
WS 2009/10
Teile-und-Herrsche-Strategie
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
26
Hierarchische Gliederung
Eine Task erzeugt während ihrer Ausführung andere Tasks
4 Parallelisierungstechniken und Rechnerabbildung
4.2. Algorithmische Ebene
Organisation durch Datenaufteilung
Parallelität durch Datenaufteilung und Zuteilung der aufgeteilten
Daten auf die Tasks organisiert
Geometrische Zerlegung
Lineare Aufteilung in einem Schritt zu Beginn
Rekursive Zerlegung
Vorlesung
Computational
Engineering I
WS 2009/10
Hierarchische Aufteilung, zur Laufzeit vorgenommen
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
27
4 Parallelisierungstechniken und Rechnerabbildung
4.2. Algorithmische Ebene
Organisation durch Datenfluss
Datenfluss zwischen den einzelnen Tasks ist Hauptquelle für die
Organisation der Nebenläufigkeit
Pipeline-Verarbeitung
Daten durchfließen eine Reihe von Tasks nacheinander
dort jeweils eine Transformation des eintreffenden Datenstroms
kontinuierlicher zu verarbeitender Eingangsdatenstrom
Vorlesung
Computational
Engineering I
WS 2009/10
Ereignis-gesteuerte Koordination
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
28
in manchen Tasks treten bestimmte sog. Ereignisse ein und
dadurch werden andere Tasks gestartet
4 Parallelisierungstechniken und Rechnerabbildung
4.2.1 Parallelismus auf Task-Ebene
Tasks selbst legt die Zerlegung des Problems in
parallele Einheiten nahe
Beispiel: Ray-Tracing
Mit jedem Strahl verbundene Berechnungen völlig unabhängig
voneinander durchführbar
Jedem Strahl somit eine eigene Task zugeordnet
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
29
Bildquelle: Spektrum d.
Wissenschaft,
3-D Grafik – der große
Sprung, S. 70-74, April
2007.
4 Parallelisierungstechniken und Rechnerabbildung
4.2.1 Parallelismus auf Task-Ebene
Vorheriges Beispiel: Molekulardynamik
Jede Task berechnet Teil der auf ein Atom wirkenden Kräfte
Abhängigkeit der Tasks etwas enger als bei Ray Tracing Anwendung
Lokale Ergebnisse am Ende der Berechnung in einer
Datenstruktur wieder zusammenfassen
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
30
4 Parallelisierungstechniken und Rechnerabbildung
4.2.2 Teile-und-Herrsche Prinzip
Teile-und-Herrsche Prinzip wird häufig in
sequenziellen Algorithmen angewandt
Task-Aufteilung nicht zu Begin der Berechnung
Sondern dynamisch zur Laufzeit
Vorlesung
Computational
Engineering I
WS 2009/10
Im sequenziellen Programm durch Rekursionsaufrufe
Task-Parallelisierung simpel
Frage, wie? Ideen
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
31
4 Parallelisierungstechniken und Rechnerabbildung
4.2.2 Teile-und-Herrsche Prinzip
Viel schwieriger als Frage nach richtiger Stelle für
Parallelisierung
ist Vorabentscheidung, ob sich Parallelisierung lohnen wird
zu viel Zeit für Aufteilung
zu Beginn und
Zusammenführen der Teilergebnisse am Ende
im Vergleich zu den eigentlichen Berechnungen
Vorlesung
Computational
Engineering I
WS 2009/10
→ Parallelisierung bringt nicht den erhofften Effekt
(s. später Kap. 5, Amdahl’sche Gesetz, zu hoher
sequenzieller Anteil)
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
32
oder: Aufteilung zu fein-granular
Folge: der zu leistende Zusatzaufwand bei der Verwaltung
der einzelnen Tasks zu hoch
Beispiel: Berechnung Fakultät n!
4 Parallelisierungstechniken und Rechnerabbildung
4.2.2 Teile-und-Herrsche Prinzip
Beispiel: Pseudokode für Funktion solve()
baseCase()entscheidet, ob Problem P klein genug ist,
Ja → direkt lösen mit baseSolve()
Nein → Aufteilung in weitere Unterprobleme subProblems[]
enthält (rekursiven) Aufruf von solve()
Teilergebnisse werden in subSolutions[] aufgenommen und
durch merge() zur gesamten Lösung zusammengefasst
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
33
4 Parallelisierungstechniken und Rechnerabbildung
4.2.3 Prinzip der geometrischen Zerlegung
Problemraum einteilen
in räumlich disjunkte
und zeitlich im Gleichschritt
zu aktualisierende Datensegmente
Parallelisierung des Problems
Zuteilung jedes einzelnen Datensegmentes zu einer Task
bzw. einem Prozessor mit dem Zweck,
eine Aktualisierung der Dateninhalte des Datensegmentes in
diskreten Zeitabschnitten zu erreichen
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
34
4 Parallelisierungstechniken und Rechnerabbildung
4.2.3 Prinzip der geometrischen Zerlegung
Darstellung: Prinzip der geometrischen Partitionierung
Streifenzerlegung
Nx
N y 0 l ,i
i Ny
p
0
...
Ny
Vorlesung
Computational
Engineering I
WS 2009/10
p-1
Lehrstuhl
Informatik 3 Rechnerarchitektur
35
i 1 Ny
i Ny
p
p
i
...
Dietmar Fey
}
N yl ,i
i.tes Teilgebiet
berechnet von
Prozessor i
4 Parallelisierungstechniken und Rechnerabbildung
4.2.3 Prinzip der geometrischen Zerlegung
alle für Aktualisierung des Datensegments notwendigen Informationen im Datensegment selbst enthalten
In diesem Falle peinlich parallelisierbares Problem
Häufig jedoch erfordert Aktualisierung
Informationen von Punkten aus anderen Datensegmenten
zumeist aus den benachbarten Segmenten
Vorlesung
Computational
Engineering I
WS 2009/10
Somit gemeinsamer Zugriff auf Informationen von
verschiedenen Segmenten aus notwendig
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
36
durch explizite Kommunikation über Nachrichten bzw.
durch Zugriff auf gemeinsame Speicherinhalte
4 Parallelisierungstechniken und Rechnerabbildung
4.2.3 Prinzip der geometrischen Zerlegung
Beispiel: numerische Lösung partieller
Differentialgleichungen
Viele Phänomene in den Naturwissenschaften durch
Differentialgleichungen beschreibbar
Problem: analytisch nicht lösbar
numerische Verfahren erforderlich
häufige Vorgehensweise
Vorlesung
Computational
Engineering I
WS 2009/10
Differentialquotienten durch Differenzenquotienten
näherungsweise ersetzen
Differential-Gleichung
Differenzen-Gleichung
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
37
4 Parallelisierungstechniken und Rechnerabbildung
4.2.3 Prinzip der geometrischen Zerlegung
Beispiel:
1-dimensionale Wärmegleichung
Temperatur-Ausbreitung in einem dünnen Draht
beschreibbar durch Differential-Gleichung
2
T
dt
T
2
x
Randbedingung:
Vorlesung
Computational
Engineering I
WS 2009/10
A(t,0) = 0, A(t,1) = 0
A(0,x) = sin( x) für 0
t
x
1
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
38
0
1
4 Parallelisierungstechniken und Rechnerabbildung
4.2.3 Prinzip der geometrischen Zerlegung
Überführung in Differenzen-Gleichung (s. Tafel)
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
39
4 Parallelisierungstechniken und Rechnerabbildung
4.2.3 Prinzip der geometrischen Zerlegung
Partitionierung für parallele Ausführung
0
1
Knoten
1
Knoten
2
Knoten
3
Knoten
4
Knoten
5
Knoten
6
Knoten
7
Knoten
8
Partitionierung durch Master
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Master / Knoten 1
Lehrstuhl
Informatik 3 Rechnerarchitektur
40
Knoten
1
Knoten
2
Knoten
3
Knoten
4
Knoten
5
Knoten
6
Knoten
7
Knoten
8
4 Parallelisierungstechniken und Rechnerabbildung
4.2.3 Prinzip der geometrischen Zerlegung
Grenzen beachten und übergeben!
0
1
Knoten
1
MPI/
PVM
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
41
Knoten
2
MPI/
PVM
Knoten
3
MPI/
PVM
Knoten
4
MPI/
PVM
Knoten
5
MPI/
PVM
Knoten
6
MPI/
PVM
Knoten
7
Knoten
8
MPI/
PVM
Wie am Effizientesten die Berechnung in den
Knoten im Hinblick auf die Kommunikation
organisieren?
4 Parallelisierungstechniken und Rechnerabbildung
4.2.3 Prinzip der geometrischen Zerlegung
Geisterpunkte / Geisterzonen
(Speicher)-Platz für benachbarte Randdaten vorsehen
sog. Geisterpunkte
Geisterpunkte von
P1,1
Geisterpunkte von
P0,2
P0,0 P0,1 P0,2 P0,3
Vorlesung
Computational
Engineering I
WS 2009/10
P1,0 P1,1 P1,2 P1,3
P2,0 P2,1 P2,2 P2,3
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
42
Geisterpunkte von
P2,2
Geisterpunkte von
P1,3
4 Parallelisierungstechniken und Rechnerabbildung
4.2.3 Prinzip der geometrischen Zerlegung
Frage: Geisterpunkte des Grundgebietes?
zwei Arten
fest vorgegeben
zyklische Randbedingungen - Torusverbindungen
– linker Rand mit rechten Rand
– oberer Rand mit unteren Rand
Kommunikation zwischen Prozessoren
möglichst kleine Schnittlinien / -flächen erwünscht
Vorlesung
Computational
Engineering I
WS 2009/10
möglichst geringe Anzahl an Nachbarblöcken
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
43
Schachbrettaufteilung vs. Blockstreifenzerlegung
4 Parallelisierungstechniken und Rechnerabbildung
4.2.3 Prinzip der geometrischen Zerlegung
Prinzip des Versteckens der Kommunikationslatenz
(engl.: latency hiding)
Füllen der Geisterzonen zeitgleich zur Berechnung der inneren
Knoten
Zunächst nicht-blockierende Kommunikation zum Austausch
der Informationen in den Geisterzonen
Anschließend: Aktualisierung der inneren Punkte eines
Teilgebiets
Idealfall:
– Berechnung der inneren Punkte abgeschlossen und
Geisterpunkte mittlerweile übertragen
– Randpunkt-Berechnung kann sofort fortgesetzt werden
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
44
4 Parallelisierungstechniken und Rechnerabbildung
4.2.3 Prinzip der geometrischen Zerlegung
andere Gebietsaufteilungen
andere Formen außer Rechtecke (Dreiecke – FEMMethoden)
sowohl im Grundgebiet als auch im Teilgebiet
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
nicht statische Gebietsaufteilung
Dynamische (adaptive) Lastverteilung
45
4 Parallelisierungstechniken und Rechnerabbildung
4.2.4 Rekursive Zerlegung
Parallelisierung auf rekursiven Datenstrukturen
aufbauender Probleme
z.B. Bäumen oder Listen
Häufig sozusagen auf natürliche Weise
nach dem Prinzip Teile-und-Herrsche behandelbar
jedoch Situationen, in denen
Vorlesung
Computational
Engineering I
WS 2009/10
sequenzielles Durchlaufen solcher Datenstruktur notwendig
um z.B. an bestimmter Stelle ein Zwischenergebnis berechnen,
was woanders weiter verarbeitet werden muss
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
46
Sequenzielles Durchlaufen → auf 1.Blick kaum Potential für
Parallelisierung
4 Parallelisierungstechniken und Rechnerabbildung
4.2.4 Rekursive Zerlegung
Lösung Technik rekursive Dopplung (engl.: recursive
doubling) bzw. Zeigerspringen (engl.: pointer jumping)
Erlaubt leistungssteigernde parallele Bearbeitung von
Problemen mit rekursiven Datenstrukturen
Stellvertretend für diese Problemklasse
für jeden Knoten in einer gegebenen Menge von Bäumen
zugehörige Wurzel finden
Vorlesung
Computational
Engineering I
WS 2009/10
Aufwand bei sequenziellem Durchlaufen O(N)
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
In jedem Zeitschritt immer zum Vorgänger gehen
N entspricht Anzahl Knoten in allen Bäumen
Rekursive Dopplung
In jedem Zeitschritt Zeiger zum Vorvorgänger setzen
Reduziert Aufwand auf log(N)
47
4 Parallelisierungstechniken und Rechnerabbildung
4.2.4 Rekursive Zerlegung
Beispiel:
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
48
4 Parallelisierungstechniken und Rechnerabbildung
4.2.4 Rekursive Zerlegung
Weiteres, numerisches Beispiel:
Berechnung aller Partialsummen in verketteter Liste
typ. datenparalleler Algorithmus -> gut für SIMD-Strukturen
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
49
4 Parallelisierungstechniken und Rechnerabbildung
4.2.5 Pipeline-Verarbeitung
Pipeline-Verarbeitung
In Automatisierungstechnik erfolgreich angewandt
eines der am meisten angewandten Parallelisierungsprinzipien in der Rechentechnik
Z.B. Befehlsschleife in Mikroprozessoren
(s. RISC-Prozessoren, Kap. 2)
Vorlesung
Computational
Engineering I
WS 2009/10
Voraussetzung:
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
50
Vorhandensein eines Datenflusses durch mehrere
Bearbeitungsstationen
4 Parallelisierungstechniken und Rechnerabbildung
4.2.5 Pipeline-Verarbeitung
In jeder Bearbeitungsstation, sog. Pipeline-Stufen,
kann andere Art der Verarbeitung geschehen
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
51
4 Parallelisierungstechniken und Rechnerabbildung
4.2.5 Pipeline-Verarbeitung
Sind alle Pipelinestufen gefüllt,
so wird am Ende der Pipeline ständig ein neues Ergebnis
ausgegeben
Rate
Bestimmt durch Reziprokwert der Verarbeitungszeit der
langsamsten Einheit
Höchste Rate, wenn alle Einheiten gleiche
Bearbeitungsdauer aufweisen
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
52
Latenzzeit: Dauer des Durchlaufens durch alle Einheiten
Bei Pipelining meist höher als in „Nicht“-Pipeline-Architektur
– wegen Synchronisation zwischen Pipelinestufen
4 Parallelisierungstechniken und Rechnerabbildung
4.2.6 Ereignis-gesteuerte Koordinierung
einige Ähnlichkeiten zu dem eben behandelten
Prinzip der Pipeline-Verarbeitung
Tasks können parallele Programme sein
Datenübermittlung nicht innerhalb weitgehend festen
zeitlichen Intervallen, sondern zu völlig beliebigen
Zeitpunkten
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
53
Koordination einzelner Tasks erfolgt durch Eintreffen
von einer Task zu verarbeitenden Dateneinheit
Wird als Ereignis bezeichnet
4 Parallelisierungstechniken und Rechnerabbildung
4.2.6 Ereignis-gesteuerte Koordinierung
Tasks somit in drei Unterschritte einteilbar
Ereignis empfangen
Ereignis verarbeiten und
Ereignisse versenden
Übermittlung der Ereignisse
Vorlesung
Computational
Engineering I
WS 2009/10
Dietmar Fey
Lehrstuhl
Informatik 3 Rechnerarchitektur
in Speicher-gekoppelten Rechensystemen gemeinsame
zwischen den Tasks benutzte Datenvariablen oder -bereiche
Bei lose gekoppelten Systemen, wie z.B. in einer GridRechenstruktur oder allgemein in einem verteilten System,
schicken Tasks Nachrichten
Warteschlangensysteme
Vorteil: nicht-blockierendes Senden von Ereignissen
54
Herunterladen