Modelle der Parallelverarbeitung

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