Ubungen zur Vorlesung Kommunikation in Parallelen

Werbung
Rolf Wanka
Erlangen, 25. Mai 2012
Übungen zur Vorlesung
Kommunikation in Parallelen Rechenmodellen
SS 2012
Blatt 5
AUFGABE 14:
Im Vorlesungsskript auf Seite 35 wird das Cube-Connected Cycles-Netzwerk CCC(d) in Definition 4.9
eingeführt. Sehen Sie sich diese Definition genau an und zeigen Sie:
(a) CCC(d) hat d · 2d Knoten, 3d · 2d−1 Kanten und Grad 3.
(b) Der Durchmesser von CCC(d) ist b 25 dc – 2 für d > 3.
AUFGABE 15:
(a) Schreiben Sie ein Ascend/Descend-Programm, das die Operation des Broadcastings (vgl. die Aufgabe 4 auf Blatt 1) auf dem Hypercube M(2, d) realisiert.
(b) Schreiben ein Ascend/Descend-Programm (möglichst kurzer Laufzeit), das einen zyklischen Rechtsshift realisiert: Jeder Prozessor ā = (ad−1 . . . a0 ) ∈ {0, 1}d hat eine Information T (ā). Der Name des
Prozessors wird als ganz normale“ Binärzahl (ā)2 interpretiert. Nach Ausführung des Programms soll
”
T (ā) in Prozessor ((ā)2 + 1) mod 2d gespeichert sein.
AUFGABE 16:
Sei n = 2d , und sei ein beliebiger Ascend/Descend-Lauf für den Hypercube M(2, log n) gegeben sowie das
lineare Array M(n, 1). Überlegen Sie sich eine Ausführung des Ascend/Descend-Laufs auf dem linearen Array, die O(n) Schritte benötigt. (Das ist im Verhältnis zu den lediglich O(log n) Schritten auf dem Hypercube
zwar viel, aber für das Array optimal. (Warum?))
Hinweis: Überlegen Sie sich die Lösung zuerst am Beispiel d = 4, indem Sie die Prozessornamen von 0 bis
15 nebeneinander schreiben und dann für einen Descend-Lauf diese Zahlen geschickt“ umordnen.
”
Zugehörige Unterlagen
Herunterladen