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