• Annahme: Gleiche Knotenanzahl 2.5.3 T OPOLOGIEN -E INBETTUNGEN • Satz: Es gibt eine Dilation-1 Einbettung, gdw. Gitter gerade Anzahl von Zeilen und/oder Spalten hat ➜ Topologien von Parallelrechnern sind physische Graphen von Prozessoren (Hypercube, Gitter, etc.) ➜ Einem parallelen Algorithmus entspricht ein virtueller Graph: • Beispiel: • Das Datenmanipulations-Muster eines parallelen Algorithmus • Knoten – lokale Speicher der Prozessoren de 1 de 2 E INBETTUNG : R ING – 2D G ITTER : Vorlesung 6 Slide 3 • Kanten – wenn eine Berechnung die Daten von zwei lokalen Speichern benötigt • Solche logischen/virtuellen Graphen sind oft regulär und sehen wie bekannte physische Topologien aus ➜ Aufgabe: Die vom Algorithmus geforderte logische Topologie auf die vorhandene Rechnertopologie abbilden/einbetten • Wenn Zeilen- und Spaltenanzahl ungerade sind, dann besitzt das Gitter keinen Hamiltonkreis ⇒ keine Dilation-1 Einbettung möglich ➜ Formal: Eine Einbettung des Graphen G = (V, E) in den Graph G′ = (V ′ , E ′ ) ist eine Funktion φ von V nach V ′ . E INBETTUNGEN : ALLG . E IGENSCHAFTEN 2D G ITTER – 2D G ITTER ➜ Einfachste Situation: Ein (a′ × b′)-Gitter läßt sich in ein (a × b)-Gitter mit Dilation 1 einbetten, gdw. a′ ≤ a und b′ ≤ b, oder a′ ≤ b und b′ ≤ a. • Der Algorithmusgraph ist ein Teilgraph des Topologiegraphen • Die Einbettung in diesem Fall ist ideal: jede Kante in G wird auf genau eine Kante in G′ abgebildet Beispiel: ➜ Im allgemeinen Fall ist die Situation komplizierter: Dilation: Nachbarknoten werden auf nicht-benachbarte Knoten abgebildet. Formal: dil(φ) = max{dist(φ(u), φ(v))|(u, v) ∈ E}, wobei dist(a, b) die Distanz zwischen a und b ist. Logischer Graph Slide 4 Physikalischer Graph Congestion: Abbildungen zweier Kanten verwenden eine gemeinsame Kante ©2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 6 1 ©2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 6 2 VOLLST ÄNDIGER B IN ÄRBAUM – 2D G ITTER E INBETTUNGEN Beispiel: Dilation-1 Einbettung für Binärbäume bis Tiefe ≤ 4 IN H YPERCUBE : A LLGEMEINES ➜ Ein Graph G heißt kubisch, wenn eine Dilation-1 Einbettung dieses Graphen in einen Hypercube existiert ➜ Das Feststellen, ob ein Graph kubisch ist, ist NP-vollständig (1985) Slide 7 de 5 Satz: Es gibt keine Dilation-1 Einbettung für Bäume mit Tiefe > 4 in ein 2D-Gitter. Begründung: Anzahl Knoten, die im Gitter nicht weiter als k Sprünge von beliebigem Punkt entfernt sind: 2k2 + 2k + 1. Anzahl von Knoten im Baum der Tiefe k: 2k+1 −1. Es gilt jedoch: 2k+1 − 1 > 2k2 + 2k + 1, für k > 4. ➜ Theorem [1972/87]. Es existiert eine Dilation-1 Einbettung eines Graphen in den k-dim. Hypercube, gdw. die Graphenkanten mit Zahlen 1, . . . , k nummeriert werden können, so daß folgendes gilt: ➀ Alle Kanten mit einem gemeinsamen Knoten haben verschiedene Nummern ➁ In jedem Pfad kommt mindestens eine Nummer in ungerader Anzahl vor ➂ In jedem Zyklus kommt keine Nummer in ungerader Anzahl vor H-BÄUME Satz: Ein vollstädiger Baum der Tiefe k kann mit Dilation 2⌈k/2⌉−1 in ein 2D-Gitter eingebettet werden. VOLLST ÄNDIGER B IN ÄRBAUM IN H YPERCUBE 2k+1 − 1 ➜ Vollständiger Binärbaum der Tiefe k hat Knoten, Hypercube der Dimension k + 1 hat 2k+1 Knoten Lösung: sog. H-Bäume ➜ Intuitiv: Da der Hypercube eine viel “reichere” Kantenstruktur als der Baum besitzt, sollte eine Einbettung problemlos klappen... de 6 Slide 8 ➜ Positive Resultate sind jedoch bescheiden: • Für einen Binärbaum der Tiefe k gibt es eine Dilation-1 Einbettung in einen Hypercube der Dimension k + 2 • Für einen Binärbaum der Tiefe k gibt es eine Dilation-2 Einbettung in einen Hypercube der Dimension k + 1 ➜ Für unsere Anfangsvermutung ist die Antwort negativ – siehe nächste Folie ➜ Rekursiv konstruiert: ein größerer H-Baum aus 4 kleineren ➜ Längste Kanten – von der Wurzel zu ihren Kindern, beide der Länge 2⌈k/2⌉−1 , daher die Dilation ©2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 6 3 ©2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 6 4 B AUM – H YPERCUBE : N EGATIVES R ESULTAT B INOMIALBAUM ➜ Satz: Es existiert keine Dilation-1 Einbettung eines vollständigen Binärbaums der Tiefe k in einen k + 1-dim. Hypercube, für k > 1. 000 001 gerade ➜ Werden die gleichnummerierten Knoten in der Baumschichtenstruktur (vorige Folie) kollabiert, erhält man den Binomialbaum: 1 1 100 ungerade (N/8) 101 1 gerade (N/4) 1 110 111 de 9 3 3 2 4 5 4 7 Slide 11 ungerade (N/2) 010 2 2 6 011 1 5 3 6 2 7 4 8 8 1 2 ➜ Beweis (durch Widerspruch): 3 • Im N-Knoten Hypercube: N/2 Knoten von gerader Parität (Anzahl von Einsen) und N/2 Knoten von ungerader • Wäre die Baumwurzel auf “geraden” Knoten abgebildet, wären ihre Söhne ungerade, die Enkel gerade, usw. • Damit hätten alle N/2 Blätter und deren Großeltern, d.h. gesamt > N/2 Knoten gleiche Parität ⇒ Widerspruch! B AUM – H YPERCUBE : E INE PRAKTIKABLE Einbettung in den Hypercube: 4 5 7 6 8 ➜ Offensichtlich: Ein Binomialbaum der Tiefe n kann mit Dilation 1 in einen Hypercube der Dimension n eingebettet werden (gestrichelte Kanten vervollständigen BB zum Hypercube) L ÖSUNG ➜ Ein vollständiger Binärbaum mit (2N−1) Knoten wird in einen Hypercube mit N Knoten (d.h. Hälfte der Knoten!) eingebettet: B INOMIALBAUM – G ITTER • Das i-te Baumblatt auf den i-ten Hypercubeknoten • Jeder innere Knoten auf denselben Hypercubeknoten wie sein am weitesten links stehendes nachfolgendes Blatt 000 e 10 000 000 000 010 Kantenschicht 1 100 100 Slide 12 Kantenschicht 2 110 001 010 011 100 101 110 Kantenschicht 3 Ein Binomialbaum der Tiefe ≤ 4 läßt ➜ sich mit Dilation 1 in ein 2D-Gitter einbetten ➜ Satz: Ein Binomialbaum der Tiefe n > 4 kann bestenfalls mit Dilation 2⌊n/2−1⌋ in ein 2D-Gitter eingebettet werden 111 ➜ Eigenschaft der Einbettung: Jede Berechnung auf einer Knotenschicht und jede Kommunikation auf einer Kantenschicht benötigen nur einen Schritt auf dem Hypercube ! Parallele Algorithmen haben oft diese “Baumschichtenstruktur”. ©2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 6 5 ©2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 6 6 e 13 R ING – H YPERCUBE G ITTER ( KEINE Z WEIERPOTENZEN ) – H YPERCUBE : ➜ Direkte Einbettung φ(i) = i geht nicht, da z.B. 001 und 010 im Hypercube keine Nachbarn sind ➜ Anforderungen: φ(i) und φ(i + 1), sowie φ(p − 1) und φ(0) unterscheiden sich in genau einer Bitposition ➜ Diese Anforderungen entsprechen der Def. vom Gray-Code ➜ Gray-Code-Aufbau ist rekursiv: man nimmt zwei k-Gray-Codes, H und L, setzt eine 0 vor jede Zahl von H und eine 1 vor jede Zahl von L und konkateniert H mit der inversen Folge von L ➜ Man kann zeigen, daß z.B. ein 3 × 5-Gitter kein Teilgraph des 16-Knoten-Hypercubes ist, verallgemeinert: ➜ Satz. Der kleinste Hypercube, der eine Dilation-1 Einbettung für ein l1 × l2 × · · · × lk Gitter ermöglicht, hat Dimension d1 + d2 + · · · + dk , wobei di = ⌈log li ⌉ Slide 15 ➜ Offenes Problem: Gilt dies für Gitter beliebiger Dimensionalität? RGC = Reflected Gray Code: (0, 1), (0, 1) → (00, 01, 11, 10) (00, 01, 11, 10), (00, 01, 11, 10) → (000, 001, 011, 010, 110,111, 101,100) 111 V ERWANDTE N ETZWERKE : ➜ Obwohl Butterfly, CCC- und Beneš-Netzwerke (s. später) dem Hypercube sehr ähnlich sind, 110 101 ➜ Satz. Jedes 2D-Gitter mit n Knoten kann in einen Hypercube der Dimension ⌈log n⌉ mit Dilation 2 eingebettet werden 100 ➜ ... ist die Dilation einer Einbettung des 2D-Gitters in diese Topologien nicht mehr konstant, sondern Ω(log N) 010 011 000 001 2D-G ITTER – H YPERCUBE ➜ Ein n × m-Gitter soll in einen (k + l)-dimensionalen Hypercube einbegettet werden, wobei n = 2k , m = 2l (Zweierpotenzen!) ➜ Hypercube-Nummern haben k + l Bits ➜ Sei RGCk = (a1 , . . . , an ), RGCl = (b1 , . . . , bm ); daraus entsteht die Matrix, wo sich Nachbarelemente in einem Bit unterscheiden: a b 1 1 a b 2 1 M= .. . an b1 e 14 ... a1 bm a2 b2 .. . ... an b2 ... a2 bm .. . an bm a1 b2 110 ©2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 6 ➜ Keine vorgegebenen (statischen) Punkt-zu-Punkt-Verbindungen, sondern zur Laufzeit (dynamisch) aufgebaut ➜ Prozessor-Prozessor oder Prozessor-Speicher ➜ Aus der Sicht der Prozessoren ist das Netz eine black box, die die Nachrichten entgegennimmt bzw. liefert 111 Slide 16 010 011 100 101 ➜ Intern: mehrere Schalter und Leitungen, die die Verbindungen gemäß Anforderungen aufbauen ➜ Drei wesentliche Arten dynamischer Netzwerke: 000 110 ➜ Dies gilt auch für Gitter beliebiger Dimensionalität, wobei die Gittergröße in jeder Dimension eine Zweierpotenz ist 2.5.4 DYNAMISCHE V ERBINDUNGSNETZWERKE : 001 111 101 • Busbasierte 100 • Crossbars • Mehrstufige Switching- bzw. Schaltnetzwerke 010 011 001 000 7 ©2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 6 8 B US . .. I/O Cn 64 e 17 M1 . . . Mm axb b a axb b .. . Slide 19 Platte a axb b a axb ... a axb ... . .. a axb ... a axb a axb .. . a Speichermodule C2 a feste Verbindungen C1 Pn feste Verbindungen P2 Prozessoren P1 M EHRSTUFIGE S CHALTNETZWERKE : A LLGEMEINES axb ➜ Nur ein Datentransport je Zeitpunkt (time-sharing) ➜ Busarbiter regelt die Anfragen mehrerer Prozessoren ➜ Engl.: multistage switching networks ➜ Busbreite: Daten-, Adreß- und Kontrolleitungen ➜ Schalter sind i.d.R. kleine Crossbars (a × b) ➜ Geeignet für beschränkte Anzahl von Prozessoren (≤ 64) ➜ Anordung meist in regelmäßigen Stufen ➜ Cache-Kohärenz über geeignete Protokolle, z.B. MSI (s. Vorl. 3) ➜ Stufen werden durch Permutationen “verklebt”; dies wird durch feste Verbindungen realisiert ➜ Praxis: SMP wie Sun Enterprise, SGI Power Challenge C ROSSBAR S CHALTNETZWERKE : P RINZIPIEN P1 UND S CHALTERZUST ÄNDE S CHALTERZUST ÄNDE : ➜ Schalter in der Praxis sind oft 2 × 2-Crossbars, aber auch z.B. 8 × 8 P2 .. . ➜ Jeder Schalter kann in einem der 4 Zustände sein: straight, crossover, upper broadcast, und lower broadcast Pn e 18 M1 M2 ... Slide 20 Mm straight ➜ Hohe Verbindungskapazität ➜ n × m Crossbar: n Eingänge, m Ausgänge, n · m Schalter ➜ Ein Schalter hat zwei mögliche Zustände: schaltet entweder “geradeaus” oder “umlenken um 90°” ➜ Hoher Hardwareaufwand ⇒ schlecht skalierbar ➜ Praxis: Fujitsu VPP500: 224 × 224-Crossbar (1992) ©2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 6 crossover upper broadcast lower broadcast ➜ Graph: Schalter sind Knoten, Verbindungen sind Kanten ➜ Auch Prozessoranbindungen werden als Kanten dazugezählt ➜ Charakterisierung: Konstruktionsvorschrift, Knotengrad ➜ In sog. regelmäßigen Netzen sind alle Stufen gleich; wir werden nur solche Netzwerke betrachten 9 ©2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 6 10 e 21 e 22 FAT-T REE B UTTERFLY (“S CHMETTERLING ”) Stufe 0 Stufe 1 Stufe 2 Stufe 3 000 001 ➜ ➜ ➜ ➜ ➜ 010 011 100 Schalter: 2x2 Crossbars log n Stufen n/2 Schalter je Stufe Alle Stufen gleich “Schmetterlinge” in blau Slide 23 101 110 111 Prozessoren ➜ Beschriftung: (a, s), wobei s die Stufe und a Position in der Stufe. ➜ Ein “zusammengeklapptes” Beneš-Netzwerk; somit werden die Verbindungen bidirektional ➜ Gewöhnlich: Blattknoten sind Prozessoren, innere Knoten sind Schalter, bzw. Schaltergruppen ➜ Verklebung: (a, s) mit (b, s + 1), falls a = b (straight edge), oder a und b unterscheiden sich genau im s + 1 Bit (cross edge) ➜ Zeilenweise zusammengefalteter Butterfly = Hypercube ! B ENE Š -N ETZWERK 0 1 2 3 4 5 6 000 FAT-T REE : E IGENSCHAFTEN 001 • Grundstruktur ist ein Binärbaum, aber mit jeder Ebene verdoppelt sich die Anzahl der Kanten 010 011 Slide 24 100 101 110 • Im Gegensatz zum “normalen” Binärbaum: kein Flaschenhals mehr bei der Wurzel. Analogien: Bäume in der Natur, Kreislaufsystem • Wurde in folgenden Parallelrechnern verwendet: Thinking Machines CM-5, Meiko CS-2 111 ➜ Zwei Butterfly-Netzwerke, die Enden miteinander “verklebt” ➜ Eigenschaft: Beliebige Permutation ohne Konflikte realisierbar ©2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 6 11 ©2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 6 12 O MEGA -N ETZWERK Stufe 0 e 25 Stufe 1 Stufe 2 Stufe 3 000 000 001 001 010 010 011 011 100 100 101 101 110 110 111 111 ➜ Schalter und Stufen wie bei Butterfly ➜ “Verklebungsfunktion” für alle Stufen gleich: (a, s) und (b, s + 1) verbunden, falls b zykl. Linksshift von a oder zyklischer Linksshift mit nachfolgendem Invertieren des niederwertigsten Bits ist ➜ Eigenschaft: Die Zieladresse alleine bestimmt die Verbindung, z.B. zu 101 immer: 1 (nach unten), 0 (nach oben), 1 (nach unten) ©2006 BY S ERGEI G ORLATCH · U NI M ÜNSTER · PARALLELE S YSTEME · VORLESUNG 6 13