2d gitter - Parallele und verteilte Systeme

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