Parallele L ¨osung großer Gleichungssysteme, Wintersemester 2012/13 Aufgabenblatt 3 Prof. Dr. Peter Bastian, Pavel Hron, Ole Klein Abgabe 16. November 2012 IWR, Universit¨at Heidelberg
U¨BUNG6 DIE PARALLELERICHARDSON-ITERATION
Wir m ¨ochten das GleichungssystemAxbmit der Richardson-Iteration xpk 1qxpkq ωpbAxpkqq
l ¨osen. Die MatrixAsei die Steifigkeitsmatrix einerP1-Diskretisierung der Poissongleichung auf dem Einheitsquadrat. Dabei verwenden wir ein strukturiertes Dreiecksgitter mit N n2 Freiheitsgra- den (Dabei bezeichnetndie Anzahl der Freiheitsgrade auf einer Horizontalen oder Vertikalen des Gitters).
Um die Berechnung zu beschleunigen, m ¨ochten wir die Iteration parallel durchf ¨uhren. Daf ¨ur unterteilen wir das Einheitsquadrat inpkleinere Quadrate und verteilen die Freiheitsgrade in die- sen Untergebieten auf p Prozessoren. (Dabei nehmen wir an, das p eine Quadratzahl ist; bei vier Prozessoren erh¨alt beispielsweise jeder Prozessorpn{2q2 Freiheitsgrade.) Die Indexmenge aller Frei- heitsgrade bezeichnen wir mitI, die des ProzesseskmitIk. Jeder Prozessor speichert die zu seinen Freiheitsgraden geh ¨origen Eintr¨age vonxpkqund die relevanten Zeilen vonA.
Eine Iteration des parallelen Verfahrens besteht nun aus folgenden Schritten:
• Kommunikation der von den Nachbarprozessoren ben ¨otigten Eintr¨age vonxpkq
• Berechnung vonxpk 1q
1. Beschreiben Sie die IndexmengenIkund geben Sie an, mit welchen Prozessoren der Prozessor kwelche Eintr¨age vonxpkqkommunizieren muss.
2. Die Rechenzeit f ¨ur eine beliebige arithmetische Operation (Addition, Subtraktion oder Multi- plikation) betragetop, die Zeit zur ¨Ubertragung eines Bytes an einen anderen Prozessor tbyte, und die Zeit, um eine Nachricht aufzusetzen, seitmsg. Geben Sie eine Formel f ¨ur die Gesamt- rechenzeit f ¨ur eine Iteration aufp Knoten an. Die Eintr¨age vonxpkq seien mit doppelter Ge- nauigkeit gespeichert, so dass jeder Eintrag 8 Byte belegt. (Die Formel soll nur asymptotisch korrekt sein; beispielsweise muss nicht gesondert ber ¨ucksichtigt werden, dass die Matrixzeilen zu Randknoten weniger Eintr¨age haben.)
3. Geben Sie tabellarisch den Speedup des parallelen Verfahrens bei folgenden Parametern an:
top2ns tbyte20ns tmsg5000ns
nP t1024,4096u pP t1,4,16,256,4096u
12 Punkte
U¨BUNG7 GEBIETZERLEGUNG
SieΩRdein Lipschitz-Gebiet (offen, zusammenh¨angend und beschr¨ankt) und seif PH1pΩq gegeben. Das homogene Poisson-Problem lautet
∆upxq fpxq @xPΩ
upxq 0 @xP BΩ (1)
SeiΩ1,Ω2 eine Gebietzerlegung des GebietesΩ:
ΩΩ1YΩ2, Ω1XΩ2∅, Γ BΩ1X BΩ2, µpBΩiq ¡0,
und BΩi sind Lipschitz-stetig. Dann ist das Problem (1) dem folgenden Problem (im schwachem Sinne) equivalent, fallsf regul¨ar genug ist:
∆u1pxq fpxq @xPΩ1
u1pxq 0 @xP BΩ1zΓ u1pxq u2pxq @xPΓ Bu1pxq
Bn1
Bu2pxq
Bn2 @xPΓ
∆u2pxq fpxq @xPΩ2
u2pxq 0 @xP BΩ2zΓ
(2)
Reicht die Regularit¨at der Funktionf, d.h.f PH1pΩq?
Hinweis:
Betrachten Sie das Poisson-Problem auf dem GebietΩ p1,1q d2u
dx2 2δ up1q up1q 0
woδdie Dirac-Delta-Funktion ist. Finden Sie die eindeutige schwache L ¨osung und untersuchen Sie die Bedingungen auf dem ¨UbergangΓin (2).
4 Punkte
U¨BUNG8 PARALLELEBERECHNUNG DERL2-NORM MITDUNE
In dieser Aufgabe soll die Berechnung derL2-Norm aus Aufgabe 1 parallelisiert werden. Dazu sollen Sie mehrere Prozesse ¨uber einen Teil des Gebietes integrieren und die Ergebnisse nachher aufsum- mieren. Die n ¨otigen Teile des Interfaces wurden in der ¨Ubung vorgestellt. Zus¨atzlich ist die Klas- seCollectiveCommunicationn ¨utzlich – schauen Sie sich am besten die Online-Dokumentation dieser Klasse an. Den im Konstruktoraufruf ben ¨otigten MPI-Communicator erhalten Sie mit der getCommunicator()-Methode derMPIHelper-Instanz.
Um DUNE auf dem eigenen Rechner mit Unterst ¨utzung paralleler Programmierung zu kompi- lieren, m ¨ussen Sie eine MPI-Bibliothek installiert haben, beispielseweise OpenMPI. In allen Linux- Distributionen gibt es fertige Pakete daf ¨ur. Außerdem m ¨ussen alle Pakete mittels
dune-common/bin/dunecontrol --configure-opts="--enable-parallel" all neu kompiliert werden. Auf den Rechnern im CIP-Pool ist DUNE bereits
”parallel“ kompiliert.
4 Punkte