Parallele L ¨osung großer Gleichungssysteme, Wintersemester 2012/13 Aufgabenblatt 9 Prof. Dr. Peter Bastian, Pavel Hron, Ole Klein Abgabe 13. Januar 2013 IWR, Universit¨at Heidelberg
U¨BUNG22 PARALLELESMEHRGITTER
In der Vorlesung wurden die Restriktionenrl,i,Rl,iundRldefiniert:
Mitrl,i:RIlÑRIl,ibezeichnen wir die Restriktion auf das
”Teilgebiet“i, f ¨urxlPRIl ist prl,ixlqj pxlqj @jPIl,i
wie bei den Schwarz-Verfahren. UnterRl :RIl 1 Ñ RIlverstehen wir die Mehrgitterrestriktion, d.h.
f ¨urxl 1PRIl 1 ist
pRlxl 1qα ¸
βPIl 1
θα,βl,l 1pxl 1qβ.
Die Beschr¨ankung von Rl auf Teilgebieti istRl,i : RIl 1,i Ñ RIl,i, und ist gegeben f ¨ur xl 1,i P RIl 1,i durch
pRl,ixl 1,iqα ¸
βPIl 1,i
θα,βl,l 1pxl 1,iqβ.
und danach die Bemerkungen6.4und6.5bewiesen. In dieser ¨Ubung betrachten wir andere Eigens- cheften von diesen Operatoren.
1. Beweisen Sie, dass diese Behauptungnichtallgemeint gilt:
Rl,irl 1,ixl 1rl,iRlxl 1 (1) 2. SeiΩˆidie ¨uberlappende Zerlegung. SeiIˆl,iIl,imit Eigenschaften
αPIˆl,iñsαPΩˆi_sαP BΩ, dann gilt auch (1) f ¨urαPIˆl,i, d.h.
pRl,irl 1,ixl 1qα prl,iRlxl 1qα αPIˆl,i.
3. Beschreiben Sie, was dies f ¨ur Konsequenzen f ¨ur die Mehrgitterimplementierung auf¨uberlappenden Gittern hat.
10 Punkte
U¨BUNG23 BPX-VERFAHREN UND ADDITIVESMEHRGITTERVERFAHREN
Nach einem Update Ihresdune-parsolveModuls finden Sie zwei neue Programme im Verzeichnis uebung/uebung09/, welche einen Multilevel-Diagonal-Scaling-Verfahren (MDS oder auch BPX) und additives Mehrgitterverfahren implementieren.
Die Programme bekommen 4 Parameter auf der Kommandozeile ¨ubergeben:
1. Die Anzahl der Zellen in jeder Richtung (Level 0) 2. Den gew ¨unschten ¨Uberlapp auf dem grobsten Gitter 3. Den gew ¨unschten ¨Uberlapp auf dem feinsten Gitter 4. Das VerfeinerungslevelL
Auf dem verwendetenYaspGridwirdL-malglobalRefine()aufgerufen, d.h. es wirdL-mal global uniform verfeinert. Die Aufteilung des Gitters auf LevelLauf die Prozessoren stellt die lokalen Teilgebiete dar. Als Grobgitter wird das urspr ¨ungliche Gitter verwendet
Aufgabe 1 Wie k ¨onnte man das Ergebnis der vorherigen Aufgabe in der Praxis ausnutzen? Was musste man im Kode ¨andern?
Aufgabe 2 F ¨uhren Sie Testrechnungen mit dem Programm aus. Lassen Sie einmal die globale Grob- gittergr ¨oße (starke Skalierbarkeit) und einmal die Grobgittergr ¨oße pro Prozess (schwache Ska- lierbarkeit) fest. Nehmen sie als Standard ein feines Gitter mit maximal10241024Elementen.
Messen Sie dabei folgendes f ¨ur2,4,16,64Prozessoren:
• Die ben ¨otigte Anzahl an Iterationsschritten.
• Den Speedup der ben ¨otigten Zeit pro Iterationsschritt. Hier m ¨ussen Sie nat ¨urlich sicher stellen, dass nur ein Prozess pro Prozessor benutzt wird. Der Pool hat maximal 50 Rechner mit je 2 Prozessoren.
• Den erreichten minimalen Defekt.
Interpretieren Sie die Ergebnisse. Wie erkl¨aren Sie sich das beobachte Verhalten?
Um diese Programme auf mehreren Rechnern im CIP-Pool zu starten, sollten Sie als erstes eine Datei mit den Namen der Rechner erzeugen, die an der Rechnung beteiligt sein sollen. Dazu k ¨onnen Sie im Verzeichnisdune-parsolve/uebung/uebung09das Skript
./create_mpihosts.sh or bash create_mpihosts.sh
aufrufen, dass in die Dateimpihostsdie Namen derjenigen Rechner schreibt, die im Augenblick nicht ausgelastet sind. Wenn Sie Problem mitssh keyshaben(kein Zugang auf andere Rechnern ohne Password), k ¨onnten Sie zuerst die Dateien im Verzeichniss.sshl ¨oschen:
rm ˜/.ssh/*
und danach Skriptcreate mpihosts.shaufrufen. Neueknown hostsDatei wird erzeugt.
Danach k ¨onnen Sie die parallele Rechnung mittels
mpirun -np <p> -machinefile mpihosts ./programm
10 Punkte