Algorithmische Methoden für schwere Optimierungsprobleme Prof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 Meyerhenke, KIT –Henning Die Forschungsuniversität in der Institut für Theoretische Informatik Helmholtz-Gemeinschaft Algorithmische Methoden für schwere Optimierungsprobleme www.kit.edu Vorlesung 20.12.16 Programm: Statische Grapheinbettungen 2 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Inhalt Grapheinbettung Einführung 3 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Problembeschreibung Paralleles Programm mit verschiedenen, untereinander kommunizierenden Prozessen (a) [Kristensen, Farnan: Efficient... J. Magnetic Resonance 161(2), April 2003.] (b) [Oak Ridge National Lab] 4 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Problembeschreibung Paralleles Programm mit verschiedenen, untereinander kommunizierenden Prozessen Parallelrechner mit verteiltem Speicher, Kommunikationskosten zwischen Prozessoren abhängig von Lage im System (NUMA-Architektur) (a) [Kristensen, Farnan: Efficient... J. Magnetic Resonance 161(2), April 2003.] (b) [Oak Ridge National Lab] 4 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Problembeschreibung Paralleles Programm mit verschiedenen, untereinander kommunizierenden Prozessen Parallelrechner mit verteiltem Speicher, Kommunikationskosten zwischen Prozessoren abhängig von Lage im System (NUMA-Architektur) (a) [Kristensen, Farnan: Efficient... J. Magnetic Resonance 161(2), April 2003.] Aufgabe: Wie bilden Sie das parallele Programm möglichst effizient auf die Prozessoren ab? Modellieren Sie sowohl das Programm als auch den Rechner als Graphen! (b) [Oak Ridge National Lab] 4 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Einbettung Definition (Einbettung) Seien G1 = (V1 , E1 ) und G2 = (V2 , E2 ) ungerichtete Graphen. Eine injektive Abbildung f : V1 7→ V2 heißt Einbettung von G1 in G2 . G1 ist der Gast, G2 der Gastgeber. 5 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Einbettung Definition (Einbettung) Seien G1 = (V1 , E1 ) und G2 = (V2 , E2 ) ungerichtete Graphen. Eine injektive Abbildung f : V1 7→ V2 heißt Einbettung von G1 in G2 . G1 ist der Gast, G2 der Gastgeber. Allgemein: Nachbarn in G1 werden nicht unbedingt auf Nachbarn in G2 abgebildet Vollständige Beschreibung durch Weg Pf (u , v ), der in G2 die Knoten f (u ) und f (v ) miteinander verbindet (muss nicht kürzester sein) Wie bewerten wir die Güte einer Einbettung? 5 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Gütekriterien für Einbettungen Definition (Kantenstreckung, Kantenauslastung) Seien G1 = (V1 , E1 ) und G2 = (V2 , E2 ) ungerichtete Graphen. Sei f eine Einbettung von G1 in G2 . Kantenstreckung KS (f ) (dilation): Maximale Länge eines Weges aus {Pf (u , v ) | {u , v } ∈ E1 } 6 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Gütekriterien für Einbettungen Definition (Kantenstreckung, Kantenauslastung) Seien G1 = (V1 , E1 ) und G2 = (V2 , E2 ) ungerichtete Graphen. Sei f eine Einbettung von G1 in G2 . Kantenstreckung KS (f ) (dilation): Maximale Länge eines Weges aus {Pf (u , v ) | {u , v } ∈ E1 } Für e ∈ E2 bezeichne ρ(e ) die Anzahl der Wege aus {Pf (u , v ) | {u , v } ∈ E1 }, die e enthalten. Kantenauslastung KA(f ) (congestion): max{ρ(e ) | e ∈ E2 } Beispiel: Siehe Tafel! 6 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Kommunikationsoptimierung Vereinfachte Darstellung: Pf enthält nur kürzeste Wege (Distanz) 7 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Kommunikationsoptimierung Vereinfachte Darstellung: Pf enthält nur kürzeste Wege (Distanz) Mögliche Formulierung als komb. Optimierungsproblem: min f ∑ w1 (u , v ) · dist2 (f (u ), f (v )) {u ,v }∈E1 Abbildung: Siehe Tafel! 7 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Kommunikationsoptimierung Vereinfachte Darstellung: Pf enthält nur kürzeste Wege (Distanz) Mögliche Formulierung als komb. Optimierungsproblem: min f ∑ w1 (u , v ) · dist2 (f (u ), f (v )) {u ,v }∈E1 Abbildung: Siehe Tafel! Diskussion: Summe passend? Genauigkeit der Maße Annahme: G2 sei vollständiger Graph (anwendungsabhängig!) 7 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Gruppenarbeit Anwendungsszenario: Sie schreiben einen Job-Scheduler für einen Parallelrechner Dazu müssen Sie Jobs an Maschinen zuweisen Annahme (oft unrealistisch): Kommunikationsverhalten der Anwendung bekannt Lösen Sie das Optimierungsproblem der letzten Folie heuristisch! 8 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Gruppenarbeit Anwendungsszenario: Sie schreiben einen Job-Scheduler für einen Parallelrechner Dazu müssen Sie Jobs an Maschinen zuweisen Annahme (oft unrealistisch): Kommunikationsverhalten der Anwendung bekannt Lösen Sie das Optimierungsproblem der letzten Folie heuristisch! Aufgabe in Gruppen von 2 − 3 Personen: Welche heuristischen Techniken passen zu diesem Problem? Wie würden Sie das Problem lösen? Fallen Ihnen zusätzlich passende Metaheuristiken ein? Wie würden Sie diese umsetzen? 8 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Algorithmus-Ansatz 1: Gierig (greedy) Idee: Baue Einbettung f iterativ auf Jeder Schritt wird dabei gierig entschieden Notation: Vxm : Bereits gemappte Knoten, Vxu : Ungemappte Knoten 9 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Algorithmus-Ansatz 1: Gierig (greedy) Idee: Baue Einbettung f iterativ auf Jeder Schritt wird dabei gierig entschieden Notation: Vxm : Bereits gemappte Knoten, Vxu : Ungemappte Knoten (i ) Finde Knoten v1 in Gastgraphen G1 mit maximaler Kommunikation zu V1m (i ) Finde Knoten v2 in Gastgebergraphen G2 mit minimaler Distanz zu V2m (i ) (i ) Setze f (v1 ) ← v2 (i ) (i ) Entferne v1 und v2 aus ihren jeweiligen Graphen 9 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Algorithmus-Ansatz 1: Gierig (greedy) Idee: Baue Einbettung f iterativ auf Jeder Schritt wird dabei gierig entschieden Notation: Vxm : Bereits gemappte Knoten, Vxu : Ungemappte Knoten (i ) Finde Knoten v1 in Gastgraphen G1 mit maximaler Kommunikation zu V1m (i ) Finde Knoten v2 in Gastgebergraphen G2 mit minimaler Distanz zu V2m (i ) (i ) Setze f (v1 ) ← v2 (i ) (i ) Entferne v1 und v2 aus ihren jeweiligen Graphen Kommunikation an Knoten v1 ∈ V1 : ∑v 0 ∈V m ∩N (v1 ) w1 (v1 , v 0 ) 1 Distanz an Knoten v2 ∈ V2 : ∑v 0 ∈V m dist2 (v2 , v 0 ) 2 9 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Pseudocode Algorithm 1 Gierige Berechnung einer Einbettung von G1 in G2 1: function G REEDY G RAPH E MBEDDING(G1 = (V1 , E1 , w1 ), G2 = (V2 , E2 , w2 )) 2: Initialisiere Kostenvektoren C1 und C2 3: v1 (0) ← Knoten mit maximalem Eintrag in C1 4: v2 (0) ← Knoten mit minimalem Eintrag in C2 5: 6: 7: 8: 9: f (v1 ) ← v2 V1m ← {v1 }, V1u ← V1 \ V1m , V2m ← {v2 }, V2u ← V2 \ V2m Aktualisiere Kostenvektoren C1 und C2 for i ← 2 to n do (i ) v1 ← arg maxv1 ∈V u ∑v 0 ∈V m ∩N (v1 ) w1 (v1 , v 0 ) 10: (0) (0) 1 1 (i ) v2 ← arg minv2 ∈V u ∑v 0 ∈V m dist2 (v2 , v 0 ) 2 2 (i ) (i ) 11: f (v1 ) ← v2 12: Aktualisiere V1m , V1u , V2m , V2u 13: Aktualisiere C1 und C2 . Werte der entfernten Knoten reinrechnen 14: end for 15: return f 16:Henning end function Meyerhenke, Institut für Theoretische Informatik Grapheinbettung 10 Algorithmische Methoden für schwere Optimierungsprobleme Einführung Beispiel Siehe Tafel und Abbildungen! 11 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Laufzeit Initialisierung: Kostenvektor C1 berechnen: O(|E1 |), denn wir akkumulieren Nachbarschaftswerte für jeden Knoten Maximum bestimmen (simpel: Array-Scan): O(|V1 |) 12 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Laufzeit Initialisierung: Kostenvektor C1 berechnen: O(|E1 |), denn wir akkumulieren Nachbarschaftswerte für jeden Knoten Maximum bestimmen (simpel: Array-Scan): O(|V1 |) Distanzen in G2 berechnen (einmalig pro System!): O(APSP (G2 )) Distanzsummen für alle Knoten berechnen und in C2 speichern: O(|V2 |2 ) 12 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Laufzeit Initialisierung: Kostenvektor C1 berechnen: O(|E1 |), denn wir akkumulieren Nachbarschaftswerte für jeden Knoten Maximum bestimmen (simpel: Array-Scan): O(|V1 |) Distanzen in G2 berechnen (einmalig pro System!): O(APSP (G2 )) Distanzsummen für alle Knoten berechnen und in C2 speichern: O(|V2 |2 ) Schleife: In G1 : Aktualisierung nach Löschung von Kanten, insgesamt O(|E1 |)-mal Maximum bestimmen (bei Array-Scan): O(|V1 |) pro Iteration In G2 : Aktualisierung (und Minimum) kostet O(|V2 |) pro Iteration 12 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Laufzeit Initialisierung: Kostenvektor C1 berechnen: O(|E1 |), denn wir akkumulieren Nachbarschaftswerte für jeden Knoten Maximum bestimmen (simpel: Array-Scan): O(|V1 |) Distanzen in G2 berechnen (einmalig pro System!): O(APSP (G2 )) Distanzsummen für alle Knoten berechnen und in C2 speichern: O(|V2 |2 ) Schleife: In G1 : Aktualisierung nach Löschung von Kanten, insgesamt O(|E1 |)-mal Maximum bestimmen (bei Array-Scan): O(|V1 |) pro Iteration In G2 : Aktualisierung (und Minimum) kostet O(|V2 |) pro Iteration Gesamt (ohne APSP): O(|V1 |2 + |V2 |2 ) = O(|V2 |2 ) 12 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Diskussion Wo sehen Sie Vorteile? Wo sehen Sie Nachteile? 13 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Algorithmus-Ansatz 2: Rekursive Bisektionierung Auch Graphpartitionierung kann uns hier weiterhelfen: Teile sowohl G1 als auch G2 in zwei gleich große Hälften Führe Einbettung rekursiv für die jeweiligen Hälften durch Rekursionssabbruch: Brute Force schnell genug 14 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Algorithmus-Ansatz 2: Rekursive Bisektionierung Auch Graphpartitionierung kann uns hier weiterhelfen: Teile sowohl G1 als auch G2 in zwei gleich große Hälften Führe Einbettung rekursiv für die jeweiligen Hälften durch Rekursionssabbruch: Brute Force schnell genug Grund: Innerhalb eines Blockes in G1 wird viel kommuniziert Dort wird in G2 viel Bandbreite benötigt 14 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Algorithmus-Ansatz 2: Rekursive Bisektionierung Auch Graphpartitionierung kann uns hier weiterhelfen: Teile sowohl G1 als auch G2 in zwei gleich große Hälften Führe Einbettung rekursiv für die jeweiligen Hälften durch Rekursionssabbruch: Brute Force schnell genug Grund: Innerhalb eines Blockes in G1 wird viel kommuniziert Dort wird in G2 viel Bandbreite benötigt Fallstricke in der Praxis: Graphgrößen keine Zweierpotenzen Partitionierer liefern mglw. nicht immer exakt gleich große Blöcke Anpassung des Gastgeber-Graphen an typische Eingaben für Partitionierer 14 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Pseudocode Algorithm 2 Berechne Einbettung durch rekursive Bisektionierung 1: function R ECBIS G RAPH E MBEDDING (G1 = (V1 , E1 ), G2 = (V2 , E2 )) 2: if |V1 | ≤ 4 then 3: return BRUTE F ORCE(G1 , G2 ) 4: else 5: (G1,1 , G1,2 ) ← BISECT (G1 ) 6: (G2,1 , G2,2 ) ← BISECT (G2 ) 7: f1 ← R ECBIS G RAPH E MBEDDING (G1,1 , G2,1 ) 8: f2 ← R ECBIS G RAPH E MBEDDING (G1,2 , G2,2 ) 9: f ← COMBINE (f1 , f2 ) 10: return f 11: end if 12: end function 15 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Beispiel Siehe Tafel! 16 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Laufzeit Theorem (Laufzeit rekursiver Ansatz) Annahme: Bisektionierung in O(|E |) Die Laufzeit von R ECBIS G RAPH E MBEDDING ist O(log |V1 | · (|E1 | + |E2 |)). Beweis. Tiefe der Rekursion: O(log |V1 |) Auf jeder Ebene Laufzeit linear in der Kantenzahl (wenn Graphpartitionierer linear ist) Rekursionstiefe für G2 gleich ⇒ Laufzeit für G1 : O(|E1 | log |V1 |) ⇒ Laufzeit für G2 : O(|E2 | log |V1 |) 17 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Diskussion Wo sehen Sie Vorteile? Wo sehen Sie Nachteile? 18 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Diskussion Wo sehen Sie Vorteile? Für dünn besetzte Graphen schneller als der Greedy-Ansatz Baut auf mglw. vorhandenem Code (Graphpartitionierung) auf Wo sehen Sie Nachteile? 18 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Diskussion Wo sehen Sie Vorteile? Für dünn besetzte Graphen schneller als der Greedy-Ansatz Baut auf mglw. vorhandenem Code (Graphpartitionierung) auf Wo sehen Sie Nachteile? Mehrere Fallstricke in der Praxis Rekursive Bipartitionierung kann für sich genommen deutlich schlechter sein als direkte k -fach-Partitionierung 18 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Algorithmus-Ansatz 3: RCM Definition (Bandmatrix, Bandbreite einer Matrix) Seien p, q ∈ N, so ist die Bandmatrix A eine Bandmatrix der Bandbreite l = p + q + 1, falls für ihre Elemente aij gilt: aij = 0 für j + p < i oder i + q < j . 19 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Einbettungen und Bandbreite Bandbreitenminimierung: Finde Permutation der Indizes, so dass Bandbreite minimal Erzeugt Matrizen von ähnlicher Form, die Nichtnulleinträge sind nahe an der Diagonalen Graph: Kanten nur zu Nachbarn mit ähnlicher ID Lokalität bleibt erhalten 20 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Einbettungen und Bandbreite Bandbreitenminimierung: Finde Permutation der Indizes, so dass Bandbreite minimal Erzeugt Matrizen von ähnlicher Form, die Nichtnulleinträge sind nahe an der Diagonalen Graph: Kanten nur zu Nachbarn mit ähnlicher ID Lokalität bleibt erhalten Einbettungs-Algorithmus: Berechne Permutation π1 für G1 Berechne Permutation π2 für G2 Berechne f = π2 ◦ π1−1 20 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Der RCM-Algorithmus Heuristik zur Bandbreitenminimierung “Schade”: Selbst Bandbreitenminimierung ist N P -schwer 21 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Der RCM-Algorithmus Heuristik zur Bandbreitenminimierung “Schade”: Selbst Bandbreitenminimierung ist N P -schwer Cuthill-McKee-Algorithmus: Berechnet Permutation der IDs Startet meist mit dem Knoten mit niedrigstem Grad Exploration und “Umlabeln” der Nachbarn nach aufsteigendem Knotengrad 21 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Der RCM-Algorithmus Heuristik zur Bandbreitenminimierung “Schade”: Selbst Bandbreitenminimierung ist N P -schwer Cuthill-McKee-Algorithmus: Berechnet Permutation der IDs Startet meist mit dem Knoten mit niedrigstem Grad Exploration und “Umlabeln” der Nachbarn nach aufsteigendem Knotengrad Reverse Cuthill-McKee (RCM): Als letzten Schritt Folge der IDs umdrehen 21 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Pseudocode Algorithm 3 Berechnung einer Einbettung durch RCM 1: function RCM(G = (V , E )) 2: R ← [] 3: for each connected component c of G do 4: s ← vertex with lowest degree in c 5: Q ← {s } 6: while Q 6= ∅ do 7: v ← Q .head . head entfernt erstes Element 8: R .push_back (v ) 9: for each u ∈ N (v ) \ R in degree-increasing order do 10: Q .enqueue (u ) 11: end for 12: end while 13: end for 14: return REVERSE(R) 15: end function 22 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Beispiel McKee (RCM) algorithm [6] is a successful heuristic for the bandwidth reduction problem. RCM mapping applies the RCM algorithm to G and H to compute πG and πH and then computes the final process permutation π(πG ) = πH , that is, π = πH ◦ πG−1 . To handle mappings with |G| < |H| correctly, all vertices v with C(v) = 0 are removed from H. Despite potential disconnectivity on the sub-graph, RCM handles the proximity condition well and produces mappings with low dilation and congestion. Figures 3(a) and 3(b) show the adjacency matrices for the problem graph G and the network graph H, respectively. Algorithmus am Beispiel: Siehe Tafel bzw. Übung! Effekt: Siehe Abbildung! 0 100 RCM 200 300 400 500 0 100 200 300 Original Permutation 400 500 If compute nodes (vertices v ∈ VH ) one process, then a graph partitioner ca G before other mapping strategies are ap case where each allocated node execute of processes C(v) = p ∀v ∈ Γ(VG ) and th needs to be partitioned into P/p equal by graph partitioners. This technique benefits from the lon rial and parallel graph partitioning. Mu (k,1+")-balanced partitioning using geo rial, spectral and multilevel schemes exi Libraries, such as METIS [20] or their parallel versions offer optimized tics. However, most graph partitioner perfectly (k,1)-balanced but (k,1+")-bala small "). Thus, the partition might n to be (k,1)-balanced. We use the Pa (Multilevel k-way Partitioning in O(|EG (k,1+")-balanced partitions and balan necessary. RCM Permutation (a) G adjacency map of the F1 matrix on 512 processes. 3.5 Improving the Initial Solu We now describe a heuristic that mi the found solution as was used in seve Several heuristics exist for such proble cepting [9] is an improved algorithm for RCM or hill climbing which takes an initial s optimize it further by searching a local 20 iterations in the inner optimization lo to determine the number of outer opti Candidate solutions are modified by sw positions in the mapping π. We will in rithm to estimate the congestion in Sect used as weight function to minimize the (b) H adjacency map for an 8x8x8 torus. TA implementation. The asymptotic ru iteration of TA is equal to the running Figure 3: Example for RCM topology mapping of (cf.2011.] Theorem 5). the F1Resultat matrixvon toRCM a torus network. bei zwei Matrizen/Graphen. Aus [Hoefler, Snir, ICS In the next section we describe how to Figure 3(a) shows the adjacency matrix of the communiall strategies into a topology mapping fr topology for Informatik a sparse matrix-vector product of the Henning Meyerhenke, Institutcation für Theoretische Grapheinbettung them to real-world network architecture F1 matrixOptimierungsprobleme on 512 processes. This represents one of our Algorithmische Methoden für schwere Einführung application-use-cases and described in detail in Section 5.2. 0 50 100 150 200 250 300 350 400 450 500 0 Abbildung: 23 3.4 Supporting Multicore Nod 100 200 300 Original Permutation 400 500 RCM Permutation Laufzeit und Diskussion BFS: O(n + m ) Hier zusätzlich: Sortierung der Nachbarn nach Knotengrad Insgesamt: O(n + m log n) 24 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Laufzeit und Diskussion BFS: O(n + m ) Hier zusätzlich: Sortierung der Nachbarn nach Knotengrad Insgesamt: O(n + m log n) Wo sehen Sie Vorteile? Wo sehen Sie Nachteile? 24 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Laufzeit und Diskussion BFS: O(n + m ) Hier zusätzlich: Sortierung der Nachbarn nach Knotengrad Insgesamt: O(n + m log n) Wo sehen Sie Vorteile? In der Praxis der schnellste der drei Algorithmen Leicht implementierbar Qualität naja Wo sehen Sie Nachteile? 24 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Laufzeit und Diskussion BFS: O(n + m ) Hier zusätzlich: Sortierung der Nachbarn nach Knotengrad Insgesamt: O(n + m log n) Wo sehen Sie Vorteile? In der Praxis der schnellste der drei Algorithmen Leicht implementierbar Qualität naja Wo sehen Sie Nachteile? Vielleicht Nachteil: Keine explizite Optimierung der eigentlichen Zielfunktion Alternative: Gibbs-Poole-Stockmeyer (schneller) 24 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Zusammenfassung Problemstellung: Bette Kommunikationsgraphen (Gast) in Architekturgraphen (Gastgeber) derart ein, dass Kommunikationskosten minimiert werden 25 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Zusammenfassung Problemstellung: Bette Kommunikationsgraphen (Gast) in Architekturgraphen (Gastgeber) derart ein, dass Kommunikationskosten minimiert werden Heuristik 1: Greedy, Laufzeit dominiert von Aktualisierung der Restwerte Heuristik 2: Rekursive Bisektionierung, Laufzeit dominiert von Partitionierung auf jeder Ebene Heuristik 3: Einbettung durch Bandbreitenminimierung (RCM), Laufzeit von RCM ähnlich BFS, zusätzlich aber noch lokale Sortierung nach Grad 25 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung Zusammenfassung Problemstellung: Bette Kommunikationsgraphen (Gast) in Architekturgraphen (Gastgeber) derart ein, dass Kommunikationskosten minimiert werden Heuristik 1: Greedy, Laufzeit dominiert von Aktualisierung der Restwerte Heuristik 2: Rekursive Bisektionierung, Laufzeit dominiert von Partitionierung auf jeder Ebene Heuristik 3: Einbettung durch Bandbreitenminimierung (RCM), Laufzeit von RCM ähnlich BFS, zusätzlich aber noch lokale Sortierung nach Grad Ausblick: Evolutionäre Algorithmen (Metaheuristik) 25 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden für schwere Optimierungsprobleme Grapheinbettung Einführung