Lösung kombinatorischer Probleme durch numerische Algorithmen

Werbung
ZKI Supercomputing, Paderborn, 15. März 2013
Lösung kombinatorischer Probleme
durch numerische Algorithmen:
Ein anschauliches Beispiel
aus der Lehre
H. Martin Bücker
Fakultät für Mathematik und Informatik
Friedrich-Schiller-Universität Jena
1
Gliederung
g
• Seriell: Lineare Algebra statt Graphen
• Parallel: Graphen statt lineare Algebra
2
Breitensuche ((Breadth-First Search))
Gegeben: Ungerichteter Graph, Startknoten s
Gesucht: Graphdurchlauf, von s aus beginnend,
d h alle
durch
ll K
Knoten
t entlang
tl
d
der L
Levell und
d
Berechnung
g der Kürzesten-Pfad-Distanzen:
d ((i )  Minimale Anzahl von Kanten
in einem Pfad von s nach i.
d (i )  -1, falls kein Pfad von s nach i existiert.
3
BFS
4
BFS
1
1
1
5
BFS
1
2
11
22
1
6
BFS
1
2
1
2
2
1
7
BFS
3
1
2
1
2
2
1
8
BFS
3
1
2
1
3
3
2
2
1
9
BFS: Startknoten 3
1
3
2
3
3
1
2
1
2
10
BFS: Startkonten 8
2
3
2
1
2
1
2
1
2
11
Graph
p ↔ Matrix
12
Algorithmus:
g
Graph-Version
p
13
Nachbarn von Knoten 3
14
Nachbarn als Matrix-Vektor-Produkt
3
6
7
3


9
15
Algorithmus:
g
Matrix-Vektor-Version
16
Laufzeit-Gewinn
45
40
35
30
TGraph
TMatVek
25
20
15
10
5
0
8
9
10
11
12
13
14
log2 ( Knotenanzahl)
Matlab 2012ª auf Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz
17
Gliederung
g
• Seriell: Lineare Algebra statt Graphen
• Parallel: Graphen statt lineare Algebra
18
Kommunikation


19
Problem: Matrix-Vektor-Produkt
Finde (konsistente) Verteilung der Zeilen
der Matrix und Einträge des Vektors auf
Prozessoren so, dass
• Datenvolumen der Kommunikation
zwischen Prozessoren minimal
• Rechenlast gleichmäßig verteilt ist.
20
Modellierung
g durch Graph
p
7 Schnittkanten
21
Problem: Graph-Partitionierung
p
g
Finde Zerlegung der Knotenmenge in
Komponenten so, dass
• Anzahl
A
hl d
der S
Schnittkanten
h ittk t minimal
i i l
• Anzahl der Knoten pro Komponente
gleich ist
ist.
22
Lösung
g des Partitionierungsproblems
g p
3 Schnittkanten
23
Umnummerierung
g der Zeilen
7 Schnittkanten
3 Schnittkanten
24
Größeres Problem
25
Zusammenfassung:
g Wechselspiel
p
26
Schlussbemerkungen
g
• Graph
Graph-Partitionierung
Partitionierung kann durch
lineare Algebra gelöst werden.
• Graph-Modell für paralleles MatrixV kt P d kt ist
Vektor-Produkt
i t nicht
i ht exakt.
kt
Matrix-Vektor-Produkt
Vektor Produkt ist
• Vektor in Matrix
dünnbesetzt.
• Sequenz von Matrix-Vektor-Produkten
• A.
A Buluç,
Buluç K.
K Madduri: Parallel breadth
breadthfirst search on distributed memory
systems. Proc. SC 2011.
27
Wechselspiel
p
28
Schlussbemerkungen
g
• Graph
Graph-Partitionierung
Partitionierung kann durch
lineare Algebra gelöst werden.
• Graph-Modell für paralleles MatrixV kt P d kt ist
Vektor-Produkt
i t nicht
i ht exakt.
kt
Matrix-Vektor-Produkt
Vektor Produkt ist
• Vektor in Matrix
dünnbesetzt.
• Sequenz von Matrix-Vektor-Produkten
• A.
A Buluç,
Buluç K.
K Madduri: Parallel breadth
breadthfirst search on distributed memory
systems. Proc. SC 2011.
29
Herunterladen