Vorlesung 9 BALANCIERUNG DYNAMISCHER UNABHÄNGIGER LASTEN 266 Graphenalgorithmen und lineare Algebra Hand in Hand Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Lastbalancierung Motivation ! Ein paralleles System besteht aus ! verschiedenen Recheneinheiten, ! die miteinander kommunizieren können ! Warum parallel rechnen? CPU image from [http://tips4pc.com/wp-content/uploads/2011/08/cpu.jpg] ! Daten passen nicht in den Speicher eines Rechners ! Rechnung zu aufwändig für einen Prozessor ! Wann lohnt sich der Einsatz von Parallelität zur Reduktion der Rechenzeit? ! Anders gefragt: Wieviel Beschleunigung erhält man durch den Einsatz von p Prozessoren (gegenüber einem)? 267 Graphenalgorithmen und lineare Algebra Hand in Hand Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Beschleunigung ! Def.: (Beschleunigung, Speedup) ! Sei T1(P(n)) die Laufzeit, mit der man ein Problem P der Größe n auf einem Prozessor lösen kann. ! Sei Tp(P(n)) die Laufzeit, mit der man ein Problem P der Größe n auf p Prozessoren lösen kann. ! Beschleunigung (engl.: Speedup) Sp(P(n)) = T1(P(n)) / Tp(P(n)) So ähnlich... [http://www.motorradonline.de/static/specials/ test_special/Bilder/beschleunigung_380.jpg] ! Beispiel: T1(P(n)) = 30 Minuten, T16(P(n)) = 3 Minuten => S16(P(n)) = 10 ! Triviale obere Schranke: Sp(P(n)) <= p ! Frage: Warum? 268 Graphenalgorithmen und lineare Algebra Hand in Hand Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Amdahls Gesetz ! Obere Schranke p trivial, geht es schärfer? ! Intuition: Bei hohem sequentiellen Anteil helfen auch viele Prozessoren nicht Gene M. Amdahl ! Sei P der (perfekt) parallelisierbare Anteil eines Programms ! Amdahls Gesetz: S <= 1 / ((1-P) + P/p) [http://www.computer.org/portal/image/ image_gallery?uuid=adcd37fe-ac71-41e3-bf145ba60779c71d&groupId=1464074&t=1252074534651] ! Beispiel: 80% parallelisierbar, 1024 Prozessoren => Maximale Beschleunigung: 1 / ((1-0,8) + 0,8/1024) ≈ 4,98 ! Also: Der sequentielle Anteil limitiert sehr stark! 269 Graphenalgorithmen und lineare Algebra Hand in Hand Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Weitere Aspekte der Effizienz ! Def.: Effizienz E(P(n)) = Sp(P(n)) / p ! Perfekte Effizienz: 1 oder 100% ! Fertigstellung bestimmt durch langsamsten Prozessor ! Beispielszenario: ! ! ! ! 2 Prozessoren, beide gleich schnell Aufteilung der Arbeitslast: 2/3 zu 1/3 Sequentielle Rechnung braucht 100 Minuten Problem hat perfekt parallelisierbaren Algorithmus ! Fragen: ! Wie lange braucht das parallele System zur Fertigstellung? ! Wie hoch ist die Beschleunigung, wie hoch die Effizienz? 270 Graphenalgorithmen und lineare Algebra Hand in Hand Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Lastbalancierung ! Bei gleichmäßiger Verteilung der Arbeitslast: ! Fertigstellung nach 50 Minuten ! Speedup ist 2, Effizienz 100% ! Fazit: Gute Parallelisierung und Lastbalancierung wichtig für hohe Beschleunigung und Effizienz ! Betrachten daher nun einen Algorithmus zur Lastbalancierung 271 Graphenalgorithmen und lineare Algebra Hand in Hand Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Szenario ! Synchrones System (gleicher Takt) ! Verteilter Speicher ! Prozessoren kommunizieren über Links mit Nachbarn ! Lasten beliebig aufteilbar (reelle Zahlen) ! Rechnertopologie darstellbar als Graph: ! Knoten: Prozessoren (processing elements) ! Kanten: Kommunikationsverbindungen (links) 272 Graphenalgorithmen und lineare Algebra Hand in Hand 1 2 3 4 5 6 7 8 9 Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Problemstellung und Lösungsverfahren ! Gesucht: Verteilter Algorithmus, der ! die Last balanciert ! möglichst gut dabei vorgeht und ! nur lokale Kommunikation erfordert ! Algorithmus Diffusionsverfahren ! Knoten kommunizieren lokal und rundenweise ! Migrationskosten beweisbar gering ! Erfordert prinzipiell teilbare Lasten ! Ähnlich: Dimension Exchange ! Nur eine Nachbarkommunikation pro Knoten und Runde ! Darstellbar und analysierbar mit linearer Algebra 273 Graphenalgorithmen und lineare Algebra Hand in Hand Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Diffusion im Graphen ! Diffusion: Bestreben eines Stoffes, sich im Raum auszubreiten ! Diffusionsoperator beschreibt Prozess, in dem ! ein Stoff zwischen einem Knoten ! und seinen Nachbarn ausgetauscht wird ! Verwandt mit Irrfahrten (Random Walks) ! Starte auf einem beliebigen Knoten v ! Gehe zu einem Nachbarn von v, der zufällig gleichverteilt gewählt wird ! Iteriere das Verfahren, bis Abbruchbedingung (variiert) erfüllt 274 Graphenalgorithmen und lineare Algebra Hand in Hand Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Notwendige Strukturen ! x(k): Allgemein Vektor x in Iteration k, startet bei 0 ! xv: Allgemein Wert des Vektors x am Knoten v ! w: Lastvektor, Länge n ! y: Flussvektor, beschreibt Fluss der Lasten, Länge m ! w : Vektor der balancierten Lasten, Länge n ! B: Knoten-Kanten-Inzidenzmatrix ! L = D-A = BBT: Laplace-Matrix ! M = I - α L: Diffusionsmatrix 275 Graphenalgorithmen und lineare Algebra Hand in Hand Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Wiederholung Definition 4: Laplace-Matrix 8 < Knotengrad von v lv,w = 1 : 0 L von G = (V, E): : v=w : v= 6 w und {v, w} 2 E : sonst Satz 5: L hat n unterschiedliche Eigenvektoren z1, . . . , zn 2 Rn, die in Rn eine Basis bilden. Es gilt zi ? zj für alle 1 i 6= j n. Die Eigenwerte 1, . . . , n 2 Rn liegen alle zwischen 0 und 2dmax. 0 ist ein einfacher Eigenwert von L genau dann, wenn L zusammenhängend ist. Definition 6: Die ungewichtete Knoten-Kanten-Inzidenzmatrix B 2 { 1, 0, +1}|V |⇥|E| von G = (V, E) enthält für alle Kanten e = (u, v) in der zu e korrespondierenden Spalte die Einträge 1 und +1 in den Zeilen u und v . Alle anderen Einträge der Spalte sind 0. Lemma 7: Es gilt: L = BB T . Henning Meyerhenke und lineare Algebra Hand in Hand Institut fürGraphenalgorithmen Technologie Graphenalgorithmen und lineare Algebra Hand in Hand 276 Karlsruher Paralleles Rechnen, Institut für Theoretische SS 2012 174 Informatik, Fakultät für Informatik Beispiel n 1 2 1 -1 1 BT 3 1 4 n -1 1 1 -1 3 -1 -1 -1 1 -1 3 -1 -1 -1 -1 -1 2 -1 -1 1 -1 1 -1 -1 -1 m -1 1 B 1 -1 L 2 m 277 Graphenalgorithmen und lineare Algebra Hand in Hand Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Exkurs 1: Diffusion per LGS ! Das vorgestellte Diffusionsverfahren arbeitet lokal ! Motivation: Kommen wir bei zentraler Berechnung schneller an die Lösung? ! Gesucht: Flussvektor y, so dass gilt: ! y balanciert, d. h. w(0) – By = w‘ (w‘ balancierte Last) ! ||y||2 minimal unter allen balancierenden Flüssen ! Herleitung: Siehe Tafel 279 Graphenalgorithmen und lineare Algebra Hand in Hand Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Exkurs 2: Elektrische Netzwerke ! Jede Kante e hat einen Widerstand 1/we ! Jeder Knoten i ist eine Stromquelle, die dem System ai Ampere Strom zuführt ! ! ! ! 280 Strom verlässt den Stromkreis über den geerdeten Knoten Jeder Knoten i hat ein Potential yi Stromfluss zwischen Knoten i und j: (yi – yj)wij Potential berechenbar durch LGS mit Laplace-Matrix Graphenalgorithmen und lineare Algebra Hand in Hand Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Beispiel 8 108 91 0 99 8 20 27 2 67 7 101 2 86 4 281 Graphenalgorithmen und lineare Algebra Hand in Hand Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Diffusionsverfahren erster Ordnung Lastbalancierungsproblem: • Zum Zeitpunkt 0 verfügt ein Knoten vi über eine Last wi. • Zu berechnen ist ein Fluss y über die Kanten des Graphen, so dass nach Verschiebung der Pn Lasten gemäß des Flusses jeder Knoten die balancierte Last i=1 wi /n erhält. Sei = max{1 ↵ 2 , |1 ↵ n |}, ⇣ wobei ↵ der sog. Di↵usionsparameter ist ↵ 2 Diffusionsverfahren: (0) (0) 1. for all i, j set wi⇣ = wi ⌘and yi,j = 0; 2. for k := 1 to O log(1/") 1 Henning Meyerhenke Karlsruher Institut für Technologie 282 0, 1 dmax ⌘⌘ . do { 3. for all nodes vi in parallel do { P (k) (k 1) (k 4. wi = wi ↵ v 2N (v )(wi 5. for all vj 2 N (vi) set 6. } 7. } ⇣ j (k) yi,j i (k 1) = yi,j 1) (k 1) wj ); (k 1) + ↵(wi (k 1) wj ); Graphenalgorithmen und lineare Algebra Hand in Hand Graphenalgorithmen und lineare Algebra Hand in Hand SS 2012 175 Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Beispiellösung ! 3x3-Torus, siehe Tafel! 283 Graphenalgorithmen und lineare Algebra Hand in Hand Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Eigenschaften der Diffusion Pn i=1 wi (1, . . . , 1)T n Definition 8: Sei w der balancierte Lastvektor mit wi = und ✏(k) = w(k) w. Die Lastsituation in einem Graphen G = (V, E) heißt "-balanciert gdw. k✏(k)k2 ". k✏(0)k2 Satz 9: Das Diffusionsverfahren berechnet eine Last w(k) 2 Rn mit der Eigenschaft Nach O ⇣ log(1/") 1 ⌘ ||w (k) 2 w||2 2k · ||w (0) 2 w||2. Schritten ist die Lastsituation "-balanciert. Lemma 10: Seien G ein Graph, w(0) die initiale Lastsituation in G und zi die Eigenvektoren Pn der Laplacematrix von G. Seien 1, . . . , n 2 R mit w(0) = i=1 i zi . Dann gelten: (i) w = 1 z1 und (ii) ✏ (0) = n X i zi i=2 Henning Meyerhenke Karlsruher Institut für Technologie 284 Graphenalgorithmen und lineare Algebra Hand in Hand Graphenalgorithmen und lineare Algebra Hand in Hand SS 2012 176 Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Konvergenz und minimaler Fluss Definition 11: Ein Fluss-Vektor y heißt l2-minimal, wenn ||y||2 = min{||x||2 | x balanciert die Last in G mit initialem Lastvektor w}. Satz 12: Das Diffusionsverfahren berechnet einen l2-minimalen Fluss y 2 Rm, wobei m die Anzahl der Kanten in G darstellt. Bemerkung 13: Das Diffusionsverfahren kann durch Berücksichtigung der vorletzten ⇣ Itera⌘ log(1/") tion auf einfache Weise so abgewandelt werden, dass die Lastsituation bereits nach O p1 Schritten "-balanciert ist. Darüber hinaus gibt es weitere Verfahren mit noch deutlich besserem Konvergenzverhalten. Dazu benötigt man die Eigenwerte der Laplace-Matrix des Graphen. 285 Henning Meyerhenke Graphenalgorithmen und lineare Algebra Hand in Hand Karlsruher Institut für Technologie Graphenalgorithmen und lineare Algebra Hand in Hand Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik SS 2012 177 Zusammenfassung ! Grundbegriffe: Beschleunigung, Effizienz, Amdahls Gesetz ! Lastbalancierung sehr wichtig für parallele Effizienz ! Diffusionsverfahren erster Ordnung: ! Lokaler Lastaustausch ! Schranke für Anzahl der Iterationen ! Berechneter Fluss minimal in der l2-Norm ! Nicht im Detail: Genauere Kenntnisse über die Eigenwerte des Graphen erlauben schnellere Konvergenz 287 Graphenalgorithmen und lineare Algebra Hand in Hand Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik