Massivparallele Modelle und Architekturen Wintersemester 2013/2014 1. Übung Fachgebiet Rechnerarchitektur Prof. R. Hoffmann 1. Aufgabe: Leistungsbewertung paralleler Systeme Betrachtet werden soll der Odd-Even-Sort-Algorithmus mit n Eingangswerten ohne Vergleich des ersten und letzten Elements im odd-Schritt. Für die Bestimmung des Parallelitätsgrades q(t) seien hier die Vergleicher (Operationen) maßgeblich. Nehmen Sie weiterhin an, Sie haben beliebig viele Ressourcen (Vergleicher) zur Verfügung und es fallen keine zusätzlichen Operationen für Kommunikation, Synchronisation oder Organisation an. a) Zeichnen Sie ein Parallelitätsprofil für n=8. b) Bestimmen Sie allgemein für gerade n die folgenden Größen: den Parallelitätsindex I das Maß für die geleistete Arbeit Work(p) das Maß für die Kosten Cost(p) die Auslastung U(p) den maximalen Speedup Smax gegenüber einer sequentiellen Ausführung mit einem einzigen Vergleicher. c) Sei wieder n=8. Wie hoch wäre der Speedup, wenn genau zwei Vergleicher zur Verfügung stünden? Bestimmen Sie U(2). 2. Aufgabe: Amdahl’s Gesetz Das folgende Schema illustriert den sequentiellen Ablauf eines Programms. Jedes Kästchen symbolisiert dabei einen unteilbaren Task. Vereinfacht wird angenommen, dass ein Task auf einem Prozessor genau eine Zeiteinheit benötigt. Die dunklen Kästchen stellen nicht parallelisierbare Tasks dar. Die hellen können parallelisiert werden. a) Wie groß ist der parallelisierbare Anteil g? b) Was ist nach Amdahl’s Gesetz der maximale Speedup für p=∞, p=5, p=4, p=3 und p=2? Kann dieser Speedup tatsächlich erreicht werden? 2 3. Aufgabe: Additionsalgorithmus im PRAM Modell Gegeben Sei ein EREW-PRAM Algorithmus zur Addition von n Zahlen. Zunächst werden die n Zahlen gleich auf p Prozessoren verteilt, wo in einer lokalen Phase sequentiell die jeweilige Teilsumme gebildet wird. Danach wird per Reduktionsbaum in einer globalen Phase die Gesamtsumme gebildet. a) Erstellen Sie eine Tabelle für n = 256 und p = 1, 2, 4, 8, 16, 32, 64, 128, 256, mit den Werten für Work, Cost, Anzahl der Schritte T, Speedup und Effizienz. b) Geben Sie je eine allgemeine Formel für Cost und für T in Abhängigkeit von n und p an. Annahme: p = 2i mit i ℕ und n mod p = 0 (p ist eine Zweierpotenz und n lässt sich auf p ohne Rest aufteilen). c) Nehmen Sie nun an, p = n/log(n). Geben Sie die Laufzeitkomplexität des Algorithmus an. 4. Aufgabe: Data Broadcasting im PRAM Modell Der folgende Code beschreibt einen Algorithmus für Data Broadcasting, d. h. der Wert einer Zelle (eines Prozessors) wird an alle anderen Prozessoren gesendet. for t = 0 to log2 n – 1 do parallel [i = 0 .. 2t -1] // active B[i+ 2t] B[i] // proc(i) writes endparallel endfor Erweitern Sie den Code so, dass er auch für eine Anzahl n fuktioniert, die keine Zweierpotenz darstellt. 5. Aufgabe: Maximum mit CRCW-PRAM Es soll ein CRCW-PRAM Algorithmus entwickelt werden, der mit n2 Prozessoren, die auf einen gemeinsamen Speicher mit der Common-Regel schreiben, das Maximum von n Zahlen in linearer Zeit O(1) ermittelt. Die einzelnen Prozessoren seien in einer n × n-Matrix angeordnet und können wie folgt programmiert werden: parallel [i = 0 ... n-1][j=0 ... n-1] do something endparallel Input ist der Array A vom Typ „Zahl“ (z.B. int oder float) der Länge n, Output ist die Zahl max. Es steht zusätzlich ein Hilfsarray temp vom Typ boolean der Länge n zur Verfügung. a) Ergänzen Sie den folgenden Programmcode. Input: A[0 ... n-1] Output: max parallel [i = 0 ... n-1][j=0] temp[i] true endparallel ... b) Bestimmen Sie zunächst die Werte für Work, Cost, Speedup und Effizienz und ordnen Sie sie dann Komplexitätsklassen zu. c) Würde Ihr Algorithmus auch mit der Arbitrary- oder Priority-Regel funktionieren?