Dyn. Lastbalancierung mit Diffusion

Werbung
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
Herunterladen