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