Institut für Numerische Mathematik ¨Ubungen Parallele Algorithmen

Werbung
Institut für Numerische Mathematik
Übungen Parallele Algorithmen in der Numerik
21. Oktober 2004
1. Übung: Technische Grundlagen: Netzwerktopologie, Einführung in MPI
1. Es seien 8 Ecken (Prozessoren) eines Graphen vorgegeben.
(a) Man finde einen Graphen mit Durchmesser 3 und maximalem Eckengrad 3, d.h. man finde
eine Netzwerktopologie mit maximal 3 Anschlüssen pro Knoten, bei der der längste Weg
höchstens 3 ist.
(b) Gibt es einen Graphen mit Durchmesser 2 und maximalem Eckengrad 3?
2. Es seien 2n Ecken eines Graphen vorgegeben. Man finde einen Graphen mit Durchmesser n
und maximalem Eckengrad n?
Hinweis: Hypercube
3. Man modifiziere das Programm aus der Vorlesung zur Berechnung von ln 2 so, daß in umgekehrter Reihenfolge summiert wird, um die Rundungsfehler zu minimieren.
4. Man schreibe ein paralleles Programm zur Schätzung von π mittels der Partialsummenfolge
sn =
n
X
(−1)i+1
i=1
1
2i − 1
für n = 1000000.
5. Stochastische Simulationen:
Man betrachte das lineare Gleichungssystem

2 + 2α1
−1 + α1
0
0
0
 −1 + α1 2 + 2α2 + 2α1 −1 + α2
0
0


0
−1
+
α
2
+
2α
−1
0
2
2


0
0
−1
2 + 2α3 −1 + α3
0
0
0
−1 + α3 2 + 2α3






x = 




1
1
1
1
1






(1)
mit zufälliger Matrix. Die Parameter α1 , α2 und α3 sind dabei unabhängige Zufallsgrößen, die
auf [0, 1] gleichverteilt sind.
(a) Man zeige, daß die Systemmatrix in (1) positiv definit ist.
(b) Für die zufallsabhängige Lösung x bestimme man Mittelwert, Maximum und Minimum
der Komponenten mittels einer parallelen stochastischen Simulation mit 1 Million Versuchen auf bis zu 8 Prozessoren.
(c) Man bestimme Speed-Up und Efficiency bei gleicher Last auf allen Prozessoren.
(d) Für die zufallsabhängige Lösung x bestimme man Mittelwert, Maximum und Minimum
der Komponenten mittels einer parallelen stochastischen Simulation mit 1 Million Versuchen auf 8 Prozessoren mit verschiedener Rechenleistung (3 mit 500 MHz, 5 mit 800
MHz). Wie sollte die Rechenlast verteilt werden?
6. Skalarprodukt zweier Vektoren:
Man entwickle ein Programm zur parallelen Berechnung des Skalarprodukts zweier Vektoren
a and b.
2. Übung: Parallelisierung einfacher Grundroutinen
1. Wie sieht die parallele Programmierung folgender Operationen aus:
(a) z = x + αy,
(b) y = Ax bei spaltenweiser Verteilung der Matrix A.
2. Wie läßt sich das Gesamtschrittverfahren bei komponentenweiser Schreibweise einfach parallelisieren? Wie muß dabei die Matrix A verteilt sein? Welche Schwierigkeiten treten beim
Einzelschrittverfahren auf?
Zusatz: Man prgrammiere das parallele Gesamtschrittverfahren für eineP
vollbesetzte Matrix A.
Man teste das Programm für eine Matrix A = [aij ]ni,j=1 der Form aii = j6=i aij , wobei die aij
für i 6= j zufällige Zahlen aus [0, 1] sind.
3. Wie läßt sich das PCG-Verfahren (mit Vorkonditionierung durch die Diagonale der Systemmatrix) parallelisieren?
4. Wir betrachten ein lineares Gleichungssystem der Form Ax = y mit einer (diagonaldominanten) tridiagonalen Matrix A.
(a) Man formuliere den Gauß-Algorithmus. Wieviele Operationen sind nötig?
(b) Man untersuche, wie sich dieser Algorithmus am besten parallel umsetzen läßt. Wie sollte
die Lastverteilung der Matrix A sein?
5. Schnelle Fourier Transformation:
h
in
2iπ
(j−1)(k−1)
2π
+
i
sin
die
n-te
Einheitswurzel
und
F
=
ω
Seien ωn = exp n = cos 2π
n
k,n
n
n
die
j,k=1
Fouriermatrix der Ordnung n mit n = 2l .
(a) Man formuliere den Algorithmus der schnellen Fouriertransformation (FFT) mit dem die
Operation Fn u in O(n log2 n) Operationen ausgeführt werden kann.
(b) Wie sieht eine parallele FFT aus?
Literaturhinweis: Zur FFT siehe z.B.
http://www.tu-chemnitz.de/ uro/teaching/SS2001-mainf2/fouriermatrix.ps
6. Gegeben sei die folgende Funktion f :

100x1 + x22 + x53 + x48
 100x2 + x24 + x27 + x6 x8

 100x3 + x4 + x5 x7 + x9

 100x4 + x51 + x23 x46 + x25 x7 x8

 100x5 + x1 + x7 + x8 x9

 100x6 + x2 + x7 x8 + x9

 100x7 + x1 + x2 x4 x8 + x3

 100x8 + x24 + x25 + x6 x7 x8
100x9 + x21 + x63 + x34
R9 7→ R9:














Wie kann man die Auswertung f (x) am besten auf 3 Prozessoren verteilen?
2
7. Beim impliziten Euler-Verfahren muß ein nichtlineares Gleichungssystem gelöst werden. Dieses nichtlineare Gleichungssystem kann mittels Newton-Verfahren gelöst werden, wozu in jedem Newton-Schritt die Lösung eines linearen Gleichungssystems berechnet werden muß. Welches numerische Verfahren kann bei kleiner Zeitschrittweite genutzt werden?
3
Herunterladen