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