Prof. Dr. Henning Meyerhenke | Fakultät für Informatik Vorlesung 9 BALANCIERUNG DYNAMISCHER UNABHÄNGIGER LASTEN 293 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)? 294 Graphenalgorithmen und lineare Algebra Hand in Hand KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Prof. Dr. Henning Meyerhenke | 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? 295 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! 296 Graphenalgorithmen und lineare Algebra Hand in Hand KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Prof. Dr. Henning Meyerhenke | 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? 297 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 298 Graphenalgorithmen und lineare Algebra Hand in Hand KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Prof. Dr. Henning Meyerhenke | 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) 299 1 2 3 4 5 6 7 Graphenalgorithmen und lineare Algebra Hand in Hand 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 300 Graphenalgorithmen und lineare Algebra Hand in Hand KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Prof. Dr. Henning Meyerhenke | 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 301 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 302 Graphenalgorithmen und lineare Algebra Hand in Hand KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Prof. Dr. Henning Meyerhenke | 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 303 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 4 n -1 1 B 1 -1 1 1 1 -1 1 -1 -1 -1 1 -1 3 -1 -1 -1 1 -1 3 -1 -1 -1 -1 -1 2 -1 -1 -1 m L 2 m 304 Graphenalgorithmen und lineare Algebra Hand in Hand KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Prof. Dr. Henning Meyerhenke | 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 306 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 Stromzufluss und -abfluss bezogen aufs System bestimmt durch rechte Seite Jeder Knoten i hat ein Potential zi Stromfluss zwischen Knoten i und j: (zi – zj)wij Potential berechenbar durch LGS mit Laplace-Matrix 307 Graphenalgorithmen und lineare Algebra Hand in Hand KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Prof. Dr. Henning Meyerhenke | Fakultät für Informatik Beispiel 8 108 91 0 99 8 20 7 101 27 2 2 67 86 4 308 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 |}, ⇣ ⇣ ⌘⌘ 1 wobei ↵ der sog. Di↵usionsparameter ist ↵ 2 0, dmax . Diffusionsverfahren: (0) (0) 1. for all i, j set wi⇣ = wi ⌘and yi,j = 0; 2. for k := 1 to O log(1/") 1 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. } Henning Meyerhenke Karlsruher Institut für Technologie 309 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 KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft SS 2012 175 Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Prof. Dr. Henning Meyerhenke | Fakultät für Informatik Beispiellösung 3x3-Torus, siehe Tafel! 310 Graphenalgorithmen und lineare Algebra Hand in Hand Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Eigenschaften der Diffusion Pn w i Definition 8: Sei w der balancierte Lastvektor mit wi = i=1 (1, . . . , 1)T und ✏(k) = n 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 311 Graphenalgorithmen und lineare Algebra Hand in Hand Graphenalgorithmen und lineare Algebra Hand in Hand KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft SS 2012 176 Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Prof. Dr. Henning Meyerhenke | 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⌘ p tion auf einfache Weise so abgewandelt werden, dass die Lastsituation bereits nach O log(1/") 1 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. 312 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 314 Graphenalgorithmen und lineare Algebra Hand in Hand KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik