RA Übung 6 - ra.informatik.tu

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