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