Netzarchitekturen

Werbung
Netzarchitekturen
Seminar über Algorithmen
(Alt / SoSe 2009)
Marc Mashänser
Zusammenfassung
Dieser Vortrag beschäftigt sich mit dem Hypercube und ähnlichen Netzwerkarchitekturen zur parallelen Berechnung. Dabei werden verschiedene nützliche und hinderliche
Eigenschaften dieser Netzwerke identiziert und die gefundenen Architekturen in ihrer
Fähigkeit, sich gegenseitig zu simulieren, verglichen.
1 Der Hypercube
Denitionen und Eigenschaften
Def. Hypercube:
Der r-dimensionale Hypercube besteht aus
N = 2r
Knoten und
r ∗ 2r−1
Kanten.
Jeder Knoten kann mit einem eindeutigen binären Label der Länge r gekennzeichnet werden. Zwei Knoten werden mit einer Kante verbunden, wenn ihr Label
genau in einem Eintrag verschieden ist. Damit ist jeder Knoten mit r = log(N)
anderen Knoten benachbart.
Def. dimension-k Kante:
Die Kanten eines Hypercubes können auf natürliche Weise partitioniert werden,
indem man sie nach den Dimensionen aufteilt, die sie verbinden. Eine Kante
wird dimension-k Kante genannt, wenn sie zwei Knoten verbindet, deren Label
sich genau im
k.
Eintrag unterscheidet. Mit
uk
wird der Nachbar eines Knoten
bezeichnet, der mit ihm über die dimension-k Kante verbunden ist.
ist die verallgemeinerte Form davon, bei der die
k1 ., k2 ., k3 .,
u{k1 ,k2 ,k3 ,...}
. . . Einträge un-
terschiedlich sind.
Eigenschaften:
•
Die dimension-k Kanten eines Hypercubes bilden ein Perfektes Matching.
•
Nach entfernen der dimension-k Kanten bleiben zwei
r − 1 dimensionale
N
Knoten übrig.
2
Ansatz für die rekursive Konstruktion eines Hypercubes)
Hypercubes mit je
(
1
2
1 Der Hypercube
Fig. 1:
Welche günstigen Eigenschaften hat ein Hypercube, die man in einem
Netzwerk haben möchte ?
•
Einfache rekursive Struktur. (Erweiterbarkeit)
•
Geringer Durchmesser von log(n)
(
längste Nachrichtenlaufzeit, um zwischen zwei Knoten zu kommu-
nizieren)
Beispiele: Für das Leader Election Problem ist ein geringer Durchmesser
wichtig. (FloodMax Alg.)
•
N
√ N
2 viele Kanten müssen für eine Bisektion entfernt werden. OderΘ( log(N ) )
Knoten.
Entferne dazu alle Knoten mit Gewicht
log( N2 ) und log( N2 ) . Das Gewicht
eines Knoten k entspricht dabei der Anzahl der 1-en im Label von k.
Sonstige Eigenschaften:
•
Ein Hypercube ist Knoten- und Kanten-symmetrisch.
Für je zwei Kanten (u,v) und (u', v') lässt sich ein Automorphismus nden,
der diese vertauscht.
3
2 Der Buttery, Cube-Connected-Cycles und Bene² Network
2 Der Buttery, Cube-Connected-Cycles und Bene²
Network
Nachteile des Hypercubes als Architektur für parallele Berechnungen:
Die Anzahl der Kanten pro Knoten wächst mit der Anzahl der Knoten.
Prozessoren aus einem
2 ∗ N -Knoten
N -Knoten
Hypercube sind nicht in einem
Hypercube verwendbar.
Die Komplexität der Kommunikationsschnittstelle jedes (Rechen)Knotens wächst mit der Anzahl der Knoten im Hypercube an.
Gibt es Netzwerke mit fester Kantenanzahl pro Knoten ?
Das Buttery Netzwerk
Def. Buttery Netzwerk:
r-dimensionale Buttery hat (r+1)∗2r Knoten und r∗2(r+1) Kanten. Jedem
Knoten ist ein Paar < w, i > zugeordnet: i ist der Level, oder die Dimension
des Knotens. w ist eine r-Bit, binäre Nummer, welche die Reihe des Knotens
Der
angibt.
Zwei Knoten
< w, i > und < w0 , i0 > sind mit einer Kante verbunden, falls:
1)
w
und
w0
sind identisch und
i + 1 = i0 (Straight
2)
w
und
w0
unterscheiden sich genau im
i0 -ten
Edge), oder
Bit. (Cross Edge)
Wie erhält man ein Hypercub Netzwerk, aus einem Buttery Netzwerk ?
Lasse alle Knoten einer Reihe zusammenfallen und entferne doppelte Kanten.
Also lässt sich jeder Schritt eines Algorithmus aus dem Hypercube,
in
log(N )
Schritten auf einem
N ∗ (log(N ) + 1)
Buttery Netzwerk
berechnen.
Eigenschaften des Buttery Netzwerkes:
•
Ein r (r − 1)-dimensionale
Einfache Rekursive Struktur: Entferne alle Level 0 Knoten.
dimensionales Buttery Netzwerk zerfällt in zwei
Buttery Netzwerke. (Man kann auch den Level r entfernen, das ist aber
weniger oensichtlich.)
•
Jeder Level 0 Knoten, in irgendeiner Reihe w, ist mit jedem Level r Knoten,
r = log(n)
O(log(N )) als Durchmesser des Graphen.
in irgendeiner Reihe w', über einen eindeutigen Weg der Länge
verbunden.
•
Damit ergibt sich
Die Bisektions Weite ist
N
O( log(N
) ).
4
2 Der Buttery, Cube-Connected-Cycles und Bene² Network
Fig. 2:
Der Wrapped Buttery:
Ausgehend vom Buttery Netzwerk, werden
< w, 0 >
mengeführt. Damit erhält man einen Level r Graph, mit
< w, r > zusamr ∗ 2r Knoten und vier
und
Kanten pro Knoten.
Zwei Knoten
< w, i > und < w0 , i0 > sind mit einer Kante verbunden, falls:
1)
i0 ≡ i + 1
mod
2)
w0
unterscheiden sich nur an der i. Stelle. (Level i' Edge)
und
w
r
und
w = w0 ,
oder
Eigenschaften des Wrapped Buttery:
•
Genauso mächtig wie der normale Buttery. Buttery und Wrapped Buttery können sich gegenseitig (mit einem Faktor 2 in der Rechenzeit)
simulieren.
•
Für jede zyklische Verschiebung der Level im Wrapped Buttery, gibt es
eine Möglichkeit die Reihen so umzuordnen, dass das resultierende Netzwerk wieder gleich aussieht. Der Wrapped Buttery ist also symmetrisch,
bezüglich zyklisch verschobenen Leveln.
5
3 Shue-Exchange Graph und Bene² Netzwerk
Die Cube-Connected-Cycles
Ein
r-dimensionaler Cube-Connected-Cycle (CCC) wird aus einem r-dimensionalen
Hypercube erstellt, indem man einfach jeden Knoten des Hypercubes mit einem
r-dimensionalen Ring aus Knoten ersetzt. Der resultierenden Graph besteht aus
r ∗ 2r
Knoten, jeweils mit Grad 3.
< w, i > zugeordnet, wobei i ∈ {1, ..., r} und
i steht dabei für die Position des Knotens im Ring,
Jedem Knoten wird ein paar
w
ein binärer String ist. Das
um einen gedachten Knoten aus dem Hypercube.
Die Knoten
< w, i >
1)
w = w0
2)
i = i0
und
und
und
< w 0 , i0 >
i − i0 ≡ +/ − 1
w
sind miteinander verbunden, falls:
mod
r
unterscheidet sich von
(Cycle Edges), oder
w0
am
i.
Bit.(Hypercube Edges)
Eigenschaften der Cube-Connected-Cycles:
•
Oensichtlich dem
•
Jeder Schritt eines Hypercubes mit N Knoten, kann in
r-dimensionalen
auf einem CCC mit
•
N ∗ log(N )
Hypercube ähnlich.
log(N )
Schritten
Knoten berechnet werden.
Nicht oensichtlich ähnlich mit dem Wrapped Buttery, denn:
Straight Edges aus dem Buttery entsprechen Cycle Edges aus dem CCC.
Zwei Cross Edges vom Buttery entsprechen Hypercube Edges vom CCC,
w, i−1 >, < w0 , i >) und (< w0 , i−1 >,< w, i >)
0
aus dem Buttery einer Kante (< w, i >,< w , i >) im CCC entsprechen.
wobei je zwei Kanten (<
•
Der N-Node CCC kann vom N-node Wrapped Buttery mit Faktor 2
simuliert werden.
•
Durchmesser ist
•
Bisektions Weite ist
Θ(log(N )).
N
Θ( log(N
) ).
3 Shue-Exchange Graph und Bene² Netzwerk
Das Bene² Netzwerk:
r eines Buttery Netzwerkes, erhält man ein Bene²
2 ∗ r + 1 Leveln, mit jeweils 2r Knoten. Die ersten und
Durch Spiegelung an Level
Netzwerk. Es besteht aus
letzten r+1 Level formen jeweils ein Buttery Netzwerk, die sich den mittleren
Level teilen.
Warum ist das Bene² Netzwerk erwähnenswert ?
Beim Bene² Netzwerk handelt es sich um ein rekongurierbares Netzwerk (=rearrangeable network).
6
3 Shue-Exchange Graph und Bene² Netzwerk
Def. Rearrangeable Network:
Ein Netzwerk, mit N Eingaben und N Ausgaben, nennt man rearrangeable, wenn
für alle (Eingabe,Ausgabe)-Paare einer beliebigen Bijektion kanten-disjunkte
Verbindungswege gefunden werden können.
Behauptung:
Für eine beliebige eins-zu-eins Abbildung
π,
von
2(r+1)
Eingaben auf
2(r+1)
Ausgaben, auf einem r-dimensionalen Bene² Netzwerk, gibt es eine Menge von
kanten-disjunkten Pfaden, von den Eingaben zu den Ausgaben, die Eingabe i
mit Ausgabe
π(i)
für
1 <= i <= 2(r+1)
verbindet.
Behauptung:
Für eine beliebige eins-zu-eins Abbildung
π , von 2r
Eingaben und
2r
Ausgaben,
in einem r-dimensionalen Bene² Netzwerk (eine Eingabe pro Level 0 Knoten und
eine Ausgabe pro Level
r ∗ 2 Knoten), gibt es eine Menge von knoten-disjunkten
Pfaden, von den Eingaben zu den Ausgaben, die Eingabe i mit Ausgabe PI(i)
für
1 <= i <= 2r
verbindet.
Ergebnisse von 3.10+3.11 werden benötigt um zu zeigen, dass ein N-Knoten
Buttery jedes andere N-Knoten Netzwerk mit fester Kanten-zahl, in
O(log(n))
simulieren kann. Oen bleibt allerdings wie die Weiterleitung festgelegt wird,
wenn nicht durch eine globale Instanz.
Simulation von beliebigen Netzwerken:
Um zu zeigen, dass ein Buttery Netzwerk beliebige Netzwerke mit festem Grad
simulieren kann, ist es nötig zu zeigen, dass ein N-Knoten Buttery jede beliebige
Permutation von N-Paketen in
O(log(N ))
Schritten routen kann.
Also ist zu zeigen, dass es, mit einem Paket pro Prozessor als Eingabe und
irgendeiner Permutation
π,
einen Weg gibt die Pakete zwischen den Knoten zu bewegen, so dass:
1)
Ein Paket, dass bei Knoten i startet bei Knoten
π(i)
ankommt, für
1 ≤ i ≤ N.
2)
3)
Maximal ein Paket eine Kante während eines Schrittes benutzt.
Maximal 3 Pakete in einem Knoten zu irgendeinem Zeitpunkt vorhanden sind.
Behauptung:
Gegeben ein N-Knoten Wrapped Buttery Netzwerk mit maximal einem Paket
an jedem Knoten, und irgendeiner Permutation
Weg die Pakete mit
1 ≤ i ≤ N,
3 ∗ log(N )
π: [1, N ] → [1, N ] gibt es einen
i zu Knoten π(i), mit
Schritten, von Knoten
zu bewegen. Auÿerdem soll maximal ein Paket eine Kante zu einem
7
3 Shue-Exchange Graph und Bene² Netzwerk
Fig. 3:
Zeitpunkt verwenden und maximal 3 Pakete sollen in einem Knoten anwesend
sein.
The Shue-Exchange Graph
Ein r-dimensionaler Shue-Exchange Graph besteht aus
2
(r−1)
Kanten. Jeder Knoten besitzt eine eindeutige
Zwei Knoten
1)
u, v
N = 2r
r-Bit,
Knoten und3 ∗
binäre Nummer.
sind mit einer Kante verbunden, falls:
u und v unterscheiden sich exakt im letzten Bit (Exchange Edge),
oder
2)
u ist eine links, oder rechts zyklische Verschiebung von v.(Shue
Edge)
Eigenschaften des Shue-Exchange Graph:
• Θ(log(N ))
Durchmesser, genauer:
2 ∗ log(N ) − 1
Bew.: Für r-Bits. (*)Falls die letzten Bits verschieden sind, folge der
Exchange Edge. Dann folge der Shue Edge nach links. Weiter mit (*)
bis man
r−1
mal einer Shue Edge gefolgt ist. Folge ggf. nochmals der
Exchange Edge, falls die letzten Bits verschieden sind.
N
• Θ( log(N
) )Bisektions
•
Weite.
Rekursive Struktur.
Der de Bruijn Graph
Ein
r-dimensionaler de Bruijn Graph besteht aus 2r Knoten und 2(r+1) gerichteten
Kanten. Jeder Knoten ist mit einer r-Bit binären Nummer versehen.
Knoten u1 , u2 , . . . ulog(n) und u2 , u3 , . . . ulog(n) , 0 und u1 , u2 , . . . ulog(n) und
u2 , u3 , . . . ulog(n) , 1sind miteinander verbunden.
Die Kanten sind mit 1, oder 0 beschriftet, je nachdem, ob sie auf einen
Knoten mit einer 1, oder 0 am Ende seines Labels zeigen.
8
3 Shue-Exchange Graph und Bene² Netzwerk
Fig. 4:
Eigenschaften des de Bruijn Graphen:
•
Alle Kanten haben eingehenden und ausgehenden Grad 2.
•
Einen r-dimensionalen de Bruijn Graph kann man aus einem (r+1) dimensionalen Shue-Graph erhalten, indem man alle Exchange Kanten
zusammenzieht. Danach müssen die übrigen Kanten nur noch, wie vorher
erklärt, gelabelt und gerichtet werden.
•
Durchmesser: genau
N ∗ log(N )
Bew.: Um von Knoten u nach v zu kommen, wähle den Weg der Kanten
mit Beschriftung
v1 , . . . , vn .
•
Bisektions Weite
N
( log(N
) ).
•
Rekursive Struktur.
Wie läÿt sich der Graph rekursiv aufbauen ?
Der N-Knoten de Bruijn Graph kann aus dem
N
2 -Knoten de Bruijn Graph er-
stellt werden, indem man:
1. Jeder Kante des
N
2 de Bruijn Graphen mit einem Knoten ersetzt.
2. Danach wird eine gerichtete Kante zwischen Paaren von Knoten eingefügt,
die zu aufeinander folgenden Knoten im Ausgangsgraph gehören.
Kurz: Der N-Knoten de Bruijn Graph ist der Kantengraph des
N
2 -Knoten
de Bruijn Graphen.
Literatur
[1]
F.T. Leighton, Introduction to Parallel Algorithms and Architectures : Arrays, Trees, Hypercubes.
San Francisco, CA,USA: Morgan Kaufmann Publishers Inc., 1992
Herunterladen