Modelle der Parallelverarbeitung Modelle der Parallelverarbeitung 11. Graphen und Netzwerke Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Sommersemester 2016 1 / 90 Graphen und Netzwerke Überblick Einleitung I I I bequem Vorstellung: für jedes Datenelement ein eigener Prozessor von Problemgröße n abhängiger Graph Gn von Komponenten, die für Kommunikationszwecke miteinander verbunden sind: „Topologie“ G realistisch: gewünschte Verbindungsstruktur Gn , reale Verbindungsstruktur Hn I I unterschiedliche Struktur unterschiedlich viele Knoten 2 / 90 Graphen und Netzwerke Überblick Was möchte man? Welche Eigenschaften sollte das Verbindungsnetzwerk eines Parallelrechners haben? 3 / 90 Graphen und Netzwerke Überblick Überblick Graphfamilien Einbettungen und Simulationen Routing Ausblick 4 / 90 Graphen und Netzwerke Graphfamilien Überblick Graphfamilien Grundlegenden Begriffe Beispiele Maßzahlen für Graph(famili)en Einbettungen und Simulationen Routing Ausblick 5 / 90 Graphen und Netzwerke Graphfamilien Grundlegenden Begriffe Überblick Graphfamilien Grundlegenden Begriffe Beispiele Maßzahlen für Graph(famili)en Einbettungen und Simulationen Routing Ausblick 6 / 90 Graphen und Netzwerke Graphfamilien Grundlegenden Begriffe Definition I I I gerichteter Graph G = (V , E) mit |V | = n und E ⊆ V × V T ⊆ N+ , unendlich Graphfamilie (Gn )n∈T mit Graphen Gn = (Vn , En ), |Vn | = n. 7 / 90 Graphen und Netzwerke Graphfamilien Grundlegenden Begriffe Definition I I I I I I n ∈ N+ [n] = {0, 1, . . . , n − 1} z. B. [2] = {0, 1} [n]d d-Tupel von Elementen aus [n] S [n]∗ = d∈N0 [n]d alle Wörter über dem Alphabet [n]. für 0 ≤ i < d sei ēi(d ) = 0 · · · 010 · · · 0 = 0d−1−i 10i Arithmetik I I I bei + und − in den ganzen Zahlen ausgeführt; falls Endergebnis nicht in [n], ist Wert undefiniert. bei ⊕ und Arithmetik stets modulo n mit d-Tupeln komponentenweise 8 / 90 Graphen und Netzwerke Graphfamilien Grundlegenden Begriffe Wortdistanzen I I I I für ā ∈ [n]d seien die Symbole mit ad−1 · · · a0 = ā bezeichnet für ā, b̄ ∈ [n]d und 0 ≤ i < d sei disti (ā, b̄) := min{k ∈ N0 | ai = k + bi ∨ bi = k + ai } und mdisti (ā, b̄) := min{k ∈ N0 | ai = k ⊕ bi ∨ bi = k ⊕ ai }. P Hamming-Distanz ham(ā, b̄) := d−1 disti (ā, b̄) Pd−1i=0 ohne Namen: mham(ā, b̄) := i=0 mdisti (ā, b̄) 9 / 90 Graphen und Netzwerke Graphfamilien Grundlegenden Begriffe Wörter und Zahlen Abbildung von natürlichen Zahlen in Wörter über [2] und umgekehrt: Pd−1 i I nat : [2]∗ → N0 : ad−1 · · · a 0 7→ i=0 ai 2 I bind : N0 → [2]d mit I I bind (k ) = ā gdw. |ā| = d ∧ nat(ā) = k bind (k ) undefiniert sonst 10 / 90 Graphen und Netzwerke Graphfamilien Grundlegenden Begriffe Verschmelzen von Knoten I I sei G = (V , E) ein Graph und P ⊂ 2V eine Partitionierung der Knotenmenge V also I I I u, v ∈ P ∧ u , v =⇒ u ∩ v = ∅ S u ∈P u = V Der Graph G 0 = (V 0, E 0 ), der durch Identifizierung jeweils aller Knoten einer Teilmenge v ∈ P entsteht, ist wie folgt festgelegt: I I V 0 = P und E 0 = {(u, v) | ∃ā ∈ u ∃b̄ ∈ v : (ā, b̄) ∈ E}. 11 / 90 Graphen und Netzwerke Graphfamilien Beispiele Überblick Graphfamilien Grundlegenden Begriffe Beispiele Maßzahlen für Graph(famili)en Einbettungen und Simulationen Routing Ausblick 12 / 90 Graphen und Netzwerke Graphfamilien Beispiele Gitter, Tori und Hyperwürfel Es sei (k1, . . . , kd ) ∈ Nd0 . I das d-dimensionale (k1, . . . , kd )-Gitter ist der Graph G = (V , E) mit I I I der d-dimensionale (k1, . . . , kd )-Torus ist der Graph G = (V , E) mit I I I I V = [k1] × · · · × [kd ] und E = {(ā, b̄) | ham(ā, b̄) = 1}. V = [k1] × · · · × [kd ] und E = {(ā, b̄) | mham(ā, b̄) = 1}. Eindimensionale Tori heißen auch Ringe. Das d-dimensionale (2, . . . , 2)-Gitter wird auch als d-dimensionaler Hyperwürfel bezeichnet. 13 / 90 Graphen und Netzwerke Graphfamilien Beispiele Eigenschaften von Hyperwürfeln I I Kürzeste Pfade zwischen Knoten ā und b̄ eines Hyperwürfels haben Länge ham(ā, b̄). Zwischen zwei Knoten ā und b̄ eines Hyperwürfels gibt es ham(ā, b̄)! solche Pfade. 14 / 90 Graphen und Netzwerke Graphfamilien Beispiele Cube connected cycles Es sei H = (VH , EH ) der d-dimensionale Hyperwürfel. d-dimensionaler CCC-Graph C = (VC , EC ): I VC = VH × [d] und I EC = {((ā, i), (b̄, i)) | (ā, b̄) ∈ E H ∧ i ∈ [d] ∧ ā ⊕ b̄ = ēi } ∪ {((ā, i), (ā, j)) | ā ∈ VH ∧ mdist(i, j) = 1}. I Anschaulich: Jede Ecke (Grad d) wird „abgeschnitten“ und durch einen Ring mit d Knoten (Grad 3) ersetzt. 15 / 90 Graphen und Netzwerke Graphfamilien Beispiele Butterfly-Graphen 16 / 90 Graphen und Netzwerke Graphfamilien Beispiele Butterfly-Graphen I d-dimensionaler Butterfly(-Graph) B = (VB , EB ): I I I VB = [2]d × [d + 1] und E B = {((ā, i), (b̄, i + 1)) | i ∈ [d] ∧ ā = b̄} ∪ {((ā, i), (b̄, i + 1)) | i ∈ [d] ∧ ā ⊕ b̄ = ēd −1−i } zyklische Butterfly-Graphen (wrapped butterfly): identifiziere für alle ā die Knoten (ā, 0) und (ā, d ) 17 / 90 Graphen und Netzwerke Graphfamilien Beispiele Eigenschaften von Butterfly-Graphen I Verschmelzen jeweils aller Knoten einer Zeile liefert 18 / 90 Graphen und Netzwerke Graphfamilien Beispiele Eigenschaften von Butterfly-Graphen I Verschmelzen jeweils aller Knoten einer Zeile liefert einen Hyperwürfel 18 / 90 Graphen und Netzwerke Graphfamilien Beispiele Eigenschaften von Butterfly-Graphen I I I Verschmelzen jeweils aller Knoten einer Zeile liefert einen Hyperwürfel In einem d-dimensionalen Butterfly-Graphen gibt es von jedem Knoten (ā, 0) zu jedem Knoten (b̄, d ) genau einen kürzesten Pfad. Man findet leicht zwei Knotenpaare ((ā, 0), (b̄, d )) und ((д̄, 0), (h̄, d )), deren verbindende kürzeste Pfade eine Kante des Butterfly-Graphen gemeinsam haben. 18 / 90 Graphen und Netzwerke Graphfamilien Beispiele Butterfly-Graphen 19 / 90 Graphen und Netzwerke Graphfamilien Beispiele Beneš-Graphen Es bestehe B = (VB , EB ) „im wesentlichen aus zwei gleich großen Butterfly-Graphen“: I I VB = [2]d × [d + 1] × [2] EB = {((ā, i, 0), (b̄, i + 1, 0)) | i ∈ [d] ∧ ā = b̄} ∪ {((ā, i, 0), (b̄, i + 1, 0)) | i ∈ [d] ∧ ā = b̄ ⊕ ēd−1−i } ∪ {((b̄, i + 1, 1), (ā, i, 1)) | i ∈ [d] ∧ ā = b̄} ∪ {((b̄, i + 1, 1), (ā, i, 1)) | i ∈ [d] ∧ ā = b̄ ⊕ ēd−1−i } d-dimensionaler Beneš-Graph: entsteht durch Identifizierung jeweils der zwei Knoten (ā, d, 0) und (ā, d, 1) für alle ā ∈ [2]d 20 / 90 Graphen und Netzwerke Graphfamilien Beispiele Beneš-Graphen: Beispiel 0000 0010 002 01 0011 0001 0100 0110 012 01 0111 0101 1000 1010 102 01 1011 1001 1100 1110 112 01 1111 1101 21 / 90 Graphen und Netzwerke Graphfamilien Beispiele Beneš-Graphen: Eigenschaften I Da es zwei Butterfly-Graphen sind: Zwischen je einem Knoten ganz links und einem ganz rechts gibt es immer einen Pfad. 22 / 90 Graphen und Netzwerke Graphfamilien Beispiele Beneš-Graphen: Eigenschaften I I Da es zwei Butterfly-Graphen sind: Zwischen je einem Knoten ganz links und einem ganz rechts gibt es immer einen Pfad. Wir werden sehen: Es gibt sogar immer „viele“ Pfade. 22 / 90 Graphen und Netzwerke Graphfamilien Beispiele Shuffle-exchange-Graphen S = (VS , ES ) heißt Shuffle-exchange-Graph, falls gilt: I VS = [2]d und I ES = {(b ā, āb) | ā ∈ [2]d−1 ∧ b ∈ [2]} ∪ {(āb, āb 0 ) | ā ∈ [2]d−1 ∧ b ∈ [2] ∧ b 0 = b ⊕ 1} I Kanten der ersten Menge heißen Shuffle-Kanten Kanten der zweiten Menge heißen Exchange-Kanten. 23 / 90 Graphen und Netzwerke Graphfamilien Beispiele Shuffle-exchange-Graphen: Beispiel 010 000 011 001 110 100 111 101 Exchange-Kanten gestrichelt Shuffle-Kanten durchgezogen 24 / 90 Graphen und Netzwerke Graphfamilien Beispiele De-Bruijn-Graphen B = (VB , EB ) heißt De-Bruijn-Graph, falls gilt: I VB = [2]d und I E B = {(b ā, āc) | ā ∈ [2]d−1 ∧ b, c ∈ [2]}. 25 / 90 Graphen und Netzwerke Graphfamilien Beispiele De-Bruijn-Graphen: Beispiel 001 000 011 010 100 101 111 110 26 / 90 Graphen und Netzwerke Graphfamilien Beispiele Shuffle-Exchange- und De-Bruijn-Graphen I I „ähnliche“ Definitionen Zusammenhang: Wenn man in einem Shuffle-exchange-Graphen Knoten identifiziert, die durch eine Exchange-Kante miteinander verbunden sind, dann erhält man einen De-Bruijn-Graphen (mit halb so vielen Knoten). 27 / 90 Graphen und Netzwerke Graphfamilien Beispiele Bäume T = (VT , ET ) heißt vollständiger binärer Baum der Tiefe d, falls gilt: Sd i I VT = i=0 [2] und I ET = {(ā, āb) | |ā| < d ∧ b ∈ [2]}. Ein Graph heißt binärer Baum, falls er zusammenhängender Teilgraph eines vollständigen binären Baumes ist und den Knoten ε enthält. 28 / 90 Graphen und Netzwerke Graphfamilien Beispiele Meshes of trees M = (VM , EM ) heißt MOT(-Graph) der Tiefe d, falls gilt: Sd Sd i i d I VM = [2]d × i=0 [2] ∪ i=0 [2] × [2] und I E M = {((ā, b̄), (ā, b̄c)) | ā ∈ [2]d ∧ |b̄| < d ∧ c ∈ [2]} ∪ {((b̄, ā), (b̄c, ā) | ā ∈ [2]d ∧ |b̄| < d ∧ c ∈ [2]}. 29 / 90 Graphen und Netzwerke Graphfamilien Beispiele Kautz-Graphen I I I I Kdk : zwei Parameter k und d Alphabet für Knotennummern [d + 1] Knotenmenge: V = {x 0x 1 · · · xk−1 ∈ [d + 1]k | ∀ 0 < i < k : xi−1 , xi } Kantenmenge: E = {(x 0x 1 · · · xk−1, x 1 · · · xk−1xk )} ⊆ V × V 30 / 90 Graphen und Netzwerke Graphfamilien Beispiele Kautz-Graphen: Eigenschaften I I I Grad aller Knoten: d Anzahl Knoten: |V | = (d + 1)d k−1 = d k + d k−1 Durchmesser: k I I I I Das ist optimal: Wenn ein Graph d k + d k −1 Knoten mit Grad d hat, dann muss der Durchmesser ≥ k sein. Bisektionsweite: Θ(d k /k ) Zwischen je zwei Knoten gibt es d kantendisjunkte Pfade. Jeder Kautzgraph besitzt einen Euler-Kreis und einen Hamilton-Kreis. 31 / 90 Graphen und Netzwerke Graphfamilien Beispiele Kautz-Graphen: Anwendungsbeispiel Rechner der Firma SiCortex (2003–2009), zum Beispiel 32 / 90 Graphen und Netzwerke Graphfamilien Beispiele Kautz-Graphen: Anwendungsbeispiel Rechner der Firma SiCortex (2003–2009), zum Beispiel I I I 5832 Prozessoren, 5.8 TFlops, 18kW d = 3, k = 6 ; 792 Knoten Knoten: 6 64-Bit Prozessoren, Netzwerk-Prozessor, . . . 32 / 90 Graphen und Netzwerke Graphfamilien Maßzahlen für Graph(famili)en Überblick Graphfamilien Grundlegenden Begriffe Beispiele Maßzahlen für Graph(famili)en Einbettungen und Simulationen Routing Ausblick 33 / 90 Graphen und Netzwerke Graphfamilien Maßzahlen für Graph(famili)en Von nun an betrachten wir auch die Varianten der eingeführten Graphen mit ungerichteten Kanten. 34 / 90 Graphen und Netzwerke Graphfamilien Maßzahlen für Graph(famili)en Definitionen I I Der Durchmesser eines Graphen ist das Maximum, genommen über alle Knotenpaare (ā, b̄), der Länge der kürzesten Pfade von ā nach b̄. Die Bisektionsweite eines Graphen G = (V , E) ist die minimale Anzahl von Kanten, die man aus E entfernen muss, damit G in zwei Teilgraphen zerfällt, deren Knotenzahlen sich um höchstens 1 unterscheiden und zwischen denen keine Kante verläuft. Beispiel: vollständiger binärer Baum hat Bisektionsweite 1 35 / 90 Graphen und Netzwerke Graphfamilien Maßzahlen für Graph(famili)en Maßzahlen Graph (k, . . . , k )-Torus (k, . . . , k )-Gitter Hyperwürfel CCC ger. shuff. ex. ger. de Bruijn butterfly wrapped butterfly vollst. Baum MOT Anzahl Knoten kd kd 2d d2d 2d 2d (d + 1)2d d2d 2d +1 − 1 3 · 22d − 2d +1 Grad 2d 2d d 3 4 4 4 4 3 3 Durchmesser d d k−1 2 e d (k − 1) d 5d b 2 c −1 2d − 1 d 2d b 3d2 c 2d 4d Bisektionsweite 2k d −1 k d −1 2d −1 2d −1 d Θ( 2d ) d Θ( 2d ) 2d 2d 1 2d 36 / 90 Graphen und Netzwerke Einbettungen und Simulationen Überblick Graphfamilien Einbettungen und Simulationen Grundlegende Begriffe Einbettung von Gittern in Hyperwürfel Maßzahlen für Einbettungen Einbettung baumartiger Graphen in Hyperwürfel Routing Ausblick 37 / 90 Graphen und Netzwerke Einbettungen und Simulationen Grundlegende Begriffe Überblick Graphfamilien Einbettungen und Simulationen Grundlegende Begriffe Einbettung von Gittern in Hyperwürfel Maßzahlen für Einbettungen Einbettung baumartiger Graphen in Hyperwürfel Routing Ausblick 38 / 90 Graphen und Netzwerke Einbettungen und Simulationen Grundlegende Begriffe Problemstellung Gegeben: zwei Graphfamilien I „guest“ G = (Gn )n∈T und G I „host“ H = (Hn )n∈T H Gesucht: Möglichkeit, I jeden Algorithmus für G auf einem Rechner mit „Topologie“ H auszuführen, I indem man f : TG → TH und „Simulationsverfahren“ festlegt, die angeben, wie man Algorithmus für Gn auf einem Rechner mit Verbindungsstruktur H f (n) simuliert. 39 / 90 Graphen und Netzwerke Einbettungen und Simulationen Grundlegende Begriffe Definition I I G = (VG , EG ) und H = (VH , EH ) seien zwei Graphen. Paar ( fV , fE ) von Abbildungen heißt eine Einbettung von G in H , wenn gilt: I I I I fV : VG → VH ∗ , so dass für jedes e ∈ E das f E : EG → E H G Wort f E (e) einen Pfad in H beschreibt Für jede Kante e = (u, v) ∈ EG führt der Pfad f E (e) von Knoten fV (u) zu Knoten fV (v). G heißt Gastgraph (guest graph) und H heißt Wirtsgraph (host graph). Einfaches Beispiel: Spezialfall Teilgraph 40 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung von Gittern in Hyperwürfel Überblick Graphfamilien Einbettungen und Simulationen Grundlegende Begriffe Einbettung von Gittern in Hyperwürfel Maßzahlen für Einbettungen Einbettung baumartiger Graphen in Hyperwürfel Routing Ausblick 41 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung von Gittern in Hyperwürfel Satz Jedes d-dimensionale Gitter G mit den Ausdehnungen (k1, . . . , kd ) ist Teilgraph des Hyperwürfels H der Dimension D = dlog k1 e + · · · + dlog kd e, d. h. mit 2 dlog k1 e · · · 2 dlog kd e Knoten. 42 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung von Gittern in Hyperwürfel Definition Für d ≥ 1 heißen die Abbildungen дd : [2d ] → [2]d mit д1 (0) = 0 und д1 (1) = 1 und 0дd (k ) дd+1 (k ) = 1дd (2d+1 − 1 − k ) falls 0 ≤ k ≤ 2d − 1 falls 2d ≤ k ≤ 2d+1 − 1 die d-stelligen gespiegelten Gray-Codes. 43 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung von Gittern in Hyperwürfel Gray-Codes: Beispiele und Eigenschaften I I Gray-Codes für d = 1, 2, 3: 0 1 2 0 1 1 0 0 1 0 0 0 3 0 1 0 4 0 1 1 5 1 1 1 6 1 0 1 7 0 0 1 Leicht zu sehen: Die Abbildungen дd sind alle bijektiv, und die Codes aufeinanderfolgender Zahlen haben stets Hamming-Distanz 1. 44 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung von Gittern in Hyperwürfel Beweis des Satzes Induktionsanfang d = 1: 45 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung von Gittern in Hyperwürfel Beweis des Satzes Induktionsanfang d = 1: I codiere Knotennummern einer linearen Kette mit passendem Gray-Code I technisch: setze D = dlog k 1 e und wähle fV = дD . Im Gitter benachbarte Knoten werden auf im Hyperwürfel benachbarte Knoten abgebildet: wähle fE ((i, j)) = (дD (i), дD (j)). 45 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung von Gittern in Hyperwürfel Beweis des Satzes (2) Induktionsschritt d → d + 1: 46 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung von Gittern in Hyperwürfel Beweis des Satzes (2) Induktionsschritt d → d + 1: I Fasse (d + 1)-dimensionales (k 1 , . . . , kd+1 )-Gitter auf als kd+1 „Schichten“ d-dimensionaler (k1, . . . , kd )-Gitter I Jede Schicht nach Induktionsvoraussetzung in Hyperwürfel mit Adressen ā ∈ [2]` einbettbar mit ` = dlog k1 e + · · · + dlog kd e ist. Es sei fV0 die entsprechende Knoteneinbettungsfunktion. I Es sei nun m = dlog kd+1 e. Betrachte ` + m-dimensionalen Hyperwürfel mit Adressen āb̄ ∈ [2]` [2]m . I Er besitzt 2m paarweise disjunkte `-dimensionale Unterhyperwürfel als Teilgraphen. fV ((i 1, . . . , id , id+1 )) = fV0 ((i 1, . . . , id ))дm (id+1 ). 46 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung von Gittern in Hyperwürfel Probleme zu beachten: I Was bedeuten „rechts“ und „links“ im Hyperwürfel? I bei manchen Rechnern in einem Schritt nur Kommunikation in einer Dimension möglich I Knotenzahl bei dieser Art der Einbettung von z. B. 3 × 5-Gitter nicht ganz so klein . . . 47 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung von Gittern in Hyperwürfel Aber Einbettung von 3 × 5-Gitter in 24-Hyperwürfel: 00 01 02 03 04 10 11 12 13 14 20 21 22 23 24 00 20 01 02 03 10 11 12 13 21 22 23 14 24 04 48 / 90 Graphen und Netzwerke Einbettungen und Simulationen Maßzahlen für Einbettungen Überblick Graphfamilien Einbettungen und Simulationen Grundlegende Begriffe Einbettung von Gittern in Hyperwürfel Maßzahlen für Einbettungen Einbettung baumartiger Graphen in Hyperwürfel Routing Ausblick 49 / 90 Graphen und Netzwerke Einbettungen und Simulationen Maßzahlen für Einbettungen Definition Es sei ( fV , fE ) eine Einbettung eines Graphen G = (VG , EG ) in einen Graphen H = (VH , EH ). |V | I Expansion (engl. expansion) der Einbettung: H |VG | I Dilatation (engl. dilation) der Einbettung: maximale Länge max{| fE (e)| | e ∈ EG } eines Bildpfades I Kantenlast (engl. congestion) der Einbettung: maximale Zahl max {eG | eH kommt in fE (eG ) vor} eH ∈ EH von Bildpfaden, die über eine Kante eH ∈ EH laufen I (Knoten-)Last (engl. load) der Einbettung: maximale Zahl max{| f −1 (vH )| | vH ∈ VH } von Gastknoten, die auf einen Wirtsknoten abgebildet werden 50 / 90 Graphen und Netzwerke Einbettungen und Simulationen Maßzahlen für Einbettungen Beispiele I I I Man kann das (3, 5)-Gitter mit Expansion 16 15 , Dilatation 2, Kantenlast 2 und Last 1 in den 4-dimensionalen Hyperwürfel einbetten. Man kann jedes d-dimensionale Gitter mit Dilatation, Kantenlast und Last 1 und einer Expansion kleiner gleich 2d in Hyperwürfel einbetten kann. Behauptung: Jedes zweidimensionale Gitter mit n Knoten kann man in einen Hyperwürfel mit 2 dlog ne Knoten mit Dilatation 2 einbetten I Für höherdimensionale Gitter wächst bei den bekannten Konstruktionen die Dilatation. 51 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung baumartiger Graphen in Hyperwürfel Überblick Graphfamilien Einbettungen und Simulationen Grundlegende Begriffe Einbettung von Gittern in Hyperwürfel Maßzahlen für Einbettungen Einbettung baumartiger Graphen in Hyperwürfel Routing Ausblick 52 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung baumartiger Graphen in Hyperwürfel Lemma Ein vollständiger binärer Baum der Tiefe d ≥ 2 kann nicht injektiv in seinen optimalen Hyperwürfel mit Dilatation 1 eingebettet werden. 53 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung baumartiger Graphen in Hyperwürfel Beweis 54 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung baumartiger Graphen in Hyperwürfel Beweis I Beide Graphen sind bipartit. 54 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung baumartiger Graphen in Hyperwürfel Beweis I I Beide Graphen sind bipartit. betrachte naheliegende Zweifärbungen 54 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung baumartiger Graphen in Hyperwürfel Beweis I I Beide Graphen sind bipartit. betrachte naheliegende Zweifärbungen I I I in Hyperwürfeln beide Farben gleich häufig in Bäumen überwiegt die Farbe der Blätter also . . . 54 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung baumartiger Graphen in Hyperwürfel Satz I I Ein vollständiger binärer Baum der Tiefe d ≥ 2 kann injektiv so in seinen optimalen Hyperwürfel mit Dilatation 2 eingebettet werden, dass nur eine einzige Kante auf einen Pfad der Länge 2 abgebildet wird und alle anderen Kanten auf Pfade der Länge 1. Zwei vollständige binäre Bäume der Tiefe d − 1 können injektiv mit Dilatation 1 in disjunkte Teile des (sinngemäß wieder optimalen) Hyperwürfels Hd+1 eingebettet werden. 55 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung baumartiger Graphen in Hyperwürfel Definition Zwei-Wurzelbaum I I Sei Td−1 = (VT , ET ) ein vollständiger binärer Baum der Tiefe d − 1. Ein vollständiger binärer 2-Wurzel-Baum (engl. double-rooted complete binary tree) der Tiefe d ist der Graph Dd = (VD , ED ), für den gilt: I I I VD = {w, w 0 } ∪ {x }VT ∪ {x 0 }VT , wobei w, w 0, x und x 0 vier neue Symbole seien. E D = {(w, w 0 ), (w, x ), (w 0, x 0 )} ∪ {(x ā, x b̄) | (ā, b̄) ∈ ET } ∪ {(x 0ā, x 0b̄) | (ā, b̄) ∈ ET } Die Knoten w und w 0 sind „die beiden Wurzeln“ von Dd . 56 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung baumartiger Graphen in Hyperwürfel Zwei-Wurzelbaum: Beispiel w w0 x x0 Td 1 Td 1 57 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung baumartiger Graphen in Hyperwürfel Lemma I Es seien Di = (Vi , Ei ), i ∈ [2], zwei vollständige binäre 2-Wurzel-Bäume der Tiefe d − 1. Dann ist D 0 ⊗ D 1 := (V , E) mit I I V = V0 ∪ V1 und E = E0 ∪E1 ∪{(w 0, w 1 ), (w 00 , x 1 ), (w 10 , x 0 )}\{(w 0, x 0 ), (w 1, x 1 )} ein vollständiger binärer 2-Wurzel-Baum der Tiefe d mit w = w 0, w 0 = w 1, x = w 00 und x 0 = w 10 . 58 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung baumartiger Graphen in Hyperwürfel Beweis w0 w1 w0 w1 0 x0 x0 0 0 x1 x1 0 59 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung baumartiger Graphen in Hyperwürfel Lemma I Wenn I I I I dann auch ( fV0 , fE0 ) eine injektive Einbettung von G in einen d-dimensionalen Hyperwürfel mit Dilatation 1, wobei I I I ( fV , f E ) die injektive Einbettung eines Graphen G in einen d-dimensionalen Hyperwürfel mit Dilatation 1 ist, π 0 : [d] → [d] eine Permutation und π : [2]d → [2]d : bd −1 · · · b1b0 7→ b π 0 (d −1) · · · b π 0 (1)b π 0 (0) die dadurch induzierte Abbildung fV0 (v) = π ( fV (v)) und f E0 ((v1, v2 )) = (π ( fV (v1 )), π ( fV (v2 ))) Beweis: leichte Übung 60 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung baumartiger Graphen in Hyperwürfel Lemma Für alle d ≥ 2 kann man zwei vollständige binäre 2-Wurzel-Bäume Di = (Vi , Ei ), i ∈ [2], der Tiefe d − 1 injektiv mit Dilatation 1 in den (d + 1)-dimensionalen Hyperwürfel H = (VH , EH ) so einbetten, dass gilt: I I ∀i ∈ [2] ∀v ∈ Vi : fV (v) ∈ i[2]d und die Knotenabbildungen fi für Di legen auch eine injektive Einbettung des vollständigen binären 2-Wurzel-Baumes D 0 ⊗ D 1 der Tiefe d mit Dilatation 1 in H fest. 61 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung baumartiger Graphen in Hyperwürfel Beweis Induktionsanfang d = 2: I betrachte 110 010 w0 I w0 x1 111 w1 101 0 x0 0 0 100 000 x1 011 w1 0 x0 001 Offensichtlich: f0 (w 0 ) = 0000d−2 f0 (w 00 ) = 0100d−2 f0 (x 0 ) = 0010d−2 f1 (w 1 ) = 1000d−2 f1 (w 10 ) = 1010d−2 f1 (x 1 ) = 1100d−2 . 62 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung baumartiger Graphen in Hyperwürfel Beweis (2) Induktionsanfang d = 2 (Fortsetzung); I ham( f 0 (w 0 ), f 1 (w 1 )) = 1, ham( f 0 (w 0 ), f 1 (x 1 )) = 1 und 0 ham( f1 (w 10 ), f0 (x 0 )) = 1, so dass I auch D = D 0 ⊗ D 1 Teilgraph von H ist. I für Knotenabbildungsfunktion f gilt: f (w ) = f0 (w 0 ) = 0000d−2 f (w 0 ) = f1 (w 1 ) = 1000d−2 f (x ) = f0 (w 00 ) = 0100d−2 I I Im Induktionsschritt werden wir die vorher genannten Eigenschaften von f0 und f1 erhalten. Damit ist das Lemma dann bewiesen. 63 / 90 Graphen und Netzwerke Einbettungen und Simulationen Einbettung baumartiger Graphen in Hyperwürfel Beweis (3) Induktionsschritt d → d + 1: I Seien D 0 und D 1 zwei vollständige binäre 2-Wurzel-Bäume der Tiefe d. I Es sei π : [2]d+2 → [2]d+2 diejenige Abbildung, die das zweite und das dritte Bit von links vertauscht. I Definiere injektive Einbettungen f 0 bzw. f 1 von D 0 bzw. D 1 in den (d + 2)-dimensionalen Hyperwürfel wie folgt: I I I f0 (v) = 0f (v) und f1 (v) = π (1f (v)) leichte Rechnung: f0 (w 0 ) = 0000d−1 f0 (w 00 ) = 0100d−1 f0 (x 0 ) = 0010d−1 f1 (w 1 ) = 1000d−1 f1 (w 10 ) = 1010d−1 f1 (x 1 ) = 1100d−1 . 64 / 90 Graphen und Netzwerke Routing Überblick Graphfamilien Einbettungen und Simulationen Routing Grundlegende Begriffe Allgemeine untere Schranken (für Permutationsrouting) Online-Routing in Gittern und Tori Offline-Routing in Beneš-Netzwerken Ausblick 65 / 90 Graphen und Netzwerke Routing Aufgabenstellung I I Ein Prozessor oder manche oder alle Prozessoren haben Pakete, die von ihrem Quellprozessor zu Zielprozessor(en) transportiert werden müssen. Probleme: I I I Alles soll möglichst schnell am Ziel sein. Pfadlängen? Staus? 66 / 90 Graphen und Netzwerke Routing Grundlegende Begriffe Überblick Graphfamilien Einbettungen und Simulationen Routing Grundlegende Begriffe Allgemeine untere Schranken (für Permutationsrouting) Online-Routing in Gittern und Tori Offline-Routing in Beneš-Netzwerken Ausblick 67 / 90 Graphen und Netzwerke Routing Grundlegende Begriffe Aufgabestellung Probleminstanz: I Menge M von Nachrichten I Funktionen src : M → A und dest : M → A, I die für Nachricht m die Adressen von Startknoten src(m) und Zielknoten dest(m) spezifizieren. Gesucht: I die Pfade im Netzwerk I die zeitliche Anordnung 68 / 90 Graphen und Netzwerke Routing Grundlegende Begriffe Spezialfälle I I Permutationsrouting: jedes PE Quelle und Ziel von genau einer Nachricht h-Relation: jedes PE Quelle und Ziel von genau h ∈ N+ Nachrichten 69 / 90 Graphen und Netzwerke Routing Grundlegende Begriffe Leitungsvermittlung I I I Für jede Nachricht wird zu einem Zeitpunkt ein ganzer Pfad (die „Leitung“) von Quelle zu Ziel exklusiv reserviert und dann die Nachricht in so vielen Schritten wie der Pfad lang ist übertragen. In dieser Zeit kann keine der am Pfad beteiligten Kanten auch noch für einen andere Nachrichtentransport benutzt werden. Das werden wir nicht betrachten. 70 / 90 Graphen und Netzwerke Routing Grundlegende Begriffe Paketvermittlung Das werden wir betrachten. Übertragung einer Nachricht wird „in Einzelschritte zerlegt“: I für Übertragung einer Nachricht über eine Kante Kante exklusiv dafür reserviert I auf nächstem Knoten muss die Nachricht u. U. auf Weitertransport warten, da nächste Kante belegt I wegen der Wartezeiten in allen Knoten Warteschlangen hinreichender Größe nötig I widersprüchliche Anforderungen an Routing-Algorithmus: I I möglichst kurze maximale Warteschlangen (Hardware!) Minimierung der Gesamt-Routingzeit 71 / 90 Graphen und Netzwerke Routing Grundlegende Begriffe Lösung für ein Routing-Problem (M, src, dest) für jede Nachricht m ein „Fahrplan“ (t1, e1 ), . . . , (tl (m) , el (m) ). I (e 1 , . . . , el (m) ) ein Pfad von src(m) nach dest(m), I ti < t j für i < j, und I für keine zwei verschiedene Nachrichten m und m0 existieren Indizes i und i 0, so daß (ti , ei ) = (ti00 , ei00 ) ist. 72 / 90 Graphen und Netzwerke Routing Grundlegende Begriffe I I Off-line routing: Algorithmus weiß alles über alle Nachrichten. Eingabe sind die vollständigen Funktionen src : M → A und dest : M → A. On-line routing: Algorithmus für jedes PE: für jede ankommende Nachricht kann nur aufgrund des bisher gesammelten lokalen Wissens wie I I I I PE-Adresse Zieladresse der Nachricht bisher geroutete Nachrichten, ... entschieden werden, wann sie über welche Kante weitergeschickt werden soll. 73 / 90 Graphen und Netzwerke Routing Allgemeine untere Schranken (für Permutationsrouting) Überblick Graphfamilien Einbettungen und Simulationen Routing Grundlegende Begriffe Allgemeine untere Schranken (für Permutationsrouting) Online-Routing in Gittern und Tori Offline-Routing in Beneš-Netzwerken Ausblick 74 / 90 Graphen und Netzwerke Routing Allgemeine untere Schranken (für Permutationsrouting) Lemma Für jeden Graphen mit Durchmesser x gibt es eine Permutation π , so dass das Routing von π mindestens x Schritte dauert. 75 / 90 Graphen und Netzwerke Routing Allgemeine untere Schranken (für Permutationsrouting) Lemma Für jeden Graphen mit n Knoten und Bisektionsweite x gibt es eine Permutation π , so dass das Routing von π mindestens n/2x Schritte dauert. 76 / 90 Graphen und Netzwerke Routing Online-Routing in Gittern und Tori Überblick Graphfamilien Einbettungen und Simulationen Routing Grundlegende Begriffe Allgemeine untere Schranken (für Permutationsrouting) Online-Routing in Gittern und Tori Offline-Routing in Beneš-Netzwerken Ausblick 77 / 90 Graphen und Netzwerke Routing Online-Routing in Gittern und Tori Routing in eindimensionalen Gittern Wie? 78 / 90 Graphen und Netzwerke Routing Online-Routing in Gittern und Tori Routing in eindimensionalen Gittern Wie? So: if hier startende Nachricht muss zu anderem Knoten then schicke Nachricht als nächstes über die Kante, entlang der der Weg zum Ziel am kürzesten ist fi if Nachricht trifft über eine Kante ein und Zieladresse , aktuelle Knotennummer then schicke Nachricht als nächstes über die andere Kante fi 78 / 90 Graphen und Netzwerke Routing Online-Routing in Gittern und Tori Analyse I I I I I I Alle Nachrichten starten gleichzeitig und bewegen sich in jedem Schritt weiter, solange sie noch nicht am Ziel sind. Also können sich Nachrichten, die sich in die gleiche Richtung bewegen, nie einholen. Es können in einem Knoten höchstens zwei Nachrichten zusammentreffen, die in entgegengesetzte Richtungen unterwegs sind. Es reichen Warteschlangen konstanter Größe. Alle Nachrichten gelangen schnellstmöglich an ihr Ziel. 79 / 90 Graphen und Netzwerke Routing Online-Routing in Gittern und Tori Online-Routing für 2-dimensionale Gitter Wie? 80 / 90 Graphen und Netzwerke Routing Online-Routing in Gittern und Tori Greedy Online-Routing für 2-dimensionale Gitter Wie? So: I I I Transportiere jedes Paket zuerst in die passende Spalte und anschließend in die richtige Zeile. Bevorzuge stets Pakete, die noch weite Wege vor sich haben. 80 / 90 Graphen und Netzwerke Routing Online-Routing in Gittern und Tori Problem beim Greedy Online-Routing für zweidimensionale Gitter 81 / 90 Graphen und Netzwerke Routing Online-Routing in Gittern und Tori Problem beim Greedy Online-Routing für zweidimensionale Gitter I I I Problemfall: alle Pakete einer Zeile wollen in die gleiche Spalte √ Warteschlangen der Größe n erzwungen. √ Immerhin: Nach 2 n Schritten sind alle am Ziel: zeitoptimal (Durchmesser) 81 / 90 Graphen und Netzwerke Routing Online-Routing in Gittern und Tori Schnelles Routing für zweidimensionale Gitter mit konstant großen Warteschlangen Ideen? 82 / 90 Graphen und Netzwerke Routing Online-Routing in Gittern und Tori Schnelles Routing für zweidimensionale Gitter mit konstant großen Warteschlangen Ideen? I I (Randomisierung) Permutationsrouting entspricht Sortieren: Es gibt Sortieralgorithmen für zweidimensionale Gitter, die I I √ in Zeit Θ( n) arbeiten und nur lokalen Austausch von Paketen zwischen benachbarten Knoten benötigen. 82 / 90 Graphen und Netzwerke Routing Offline-Routing in Beneš-Netzwerken Überblick Graphfamilien Einbettungen und Simulationen Routing Grundlegende Begriffe Allgemeine untere Schranken (für Permutationsrouting) Online-Routing in Gittern und Tori Offline-Routing in Beneš-Netzwerken Ausblick 83 / 90 Graphen und Netzwerke Routing Offline-Routing in Beneš-Netzwerken Rekursiver Aufbau von Beneš-Netzwerken Bd 1 Bd 1 84 / 90 Graphen und Netzwerke Routing Offline-Routing in Beneš-Netzwerken Problemstellung I I I Bezeichne die Knoten am linken Rand des Graphen als Eingänge und die am rechten Rand des Graphen als Ausgänge. Problem: Route eine beliebige 2-Relation von den Eingängen zu den Ausgängen möglichst „geschickt“. 85 / 90 Graphen und Netzwerke Routing Offline-Routing in Beneš-Netzwerken Satz In Beneš-Graphen können 2-Relationen von den Eingängen zu den Ausgängen auf paarweise kantendisjunkten Pfaden geroutet werden. Beachte: I Butterfly-Graphen haben diese Eigenschaft nicht. I Für das Routing werden alle Kanten benötigt. 86 / 90 Graphen und Netzwerke Routing Offline-Routing in Beneš-Netzwerken Beweisidee I I Induktion an der Tafel 87 / 90 Graphen und Netzwerke Ausblick Überblick Graphfamilien Einbettungen und Simulationen Routing Ausblick 88 / 90 Graphen und Netzwerke Ausblick Universelle Netzwerke Z. B. Butterfly-Netzwerke sind log n-universell, d. h. I jedes Netzwerk mit konstantem Knotengrad und „ungefähr ebensovielen“ Knoten wie ein Butterfly-Netzwerk I kann mit einem („nur“) um den Faktor log n größeren Zeitbedarf simuliert werden. 89 / 90 Graphen und Netzwerke Ausblick Emulationen I Einbettungen: I I I I motiviert durch den Wunsch, ein Netzwerk auf einem anderen zu „simulieren“ Idee: Jeder Gast-Knoten wird von genau einem Wirts-Knoten simuliert das ist zwar naheliegend, aber nicht immer das Beste Emulationen: I I In manchen Fällen kommt man zu nachweisbar asymptotisch schnelleren Verfahren, wenn man erlaubt, dass jeder Gast-Knoten von mehreren Wirts-Knoten simuliert werden darf. I Konsistenz . . . ? . . . 90 / 90