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. ”