460 likes | 629 Views
Nummerisches Lösen partieller Differentialgleichungen. Im Rahmen des Seminars „Verteilte und parallele Systeme“. Nial Moore. Lehrstuhl für praktische Informatik in der Wirtschaft Prof. Dr. Herbert Kuchen. Gliederung. Einleitung Differentialgleichungen Partielle Differentialgleichungen
E N D
Nummerisches Lösen partieller Differentialgleichungen Im Rahmen des Seminars „Verteilte und parallele Systeme“ Nial Moore Lehrstuhl für praktische Informatik in der Wirtschaft Prof. Dr. Herbert Kuchen
Gliederung • Einleitung • Differentialgleichungen • Partielle Differentialgleichungen • Diskretisierung • Numerische Lösungsverfahren • Direkte Verfahren • Gauß-Elimination • Iterative Verfahren • Jacobi-Verfahren • Gauß-Seidel-Verfahren • Zusammenfassung
Gliederung • Einleitung • Differentialgleichungen • Partielle Differentialgleichungen • Diskretisierung • Numerische Lösungsverfahren • Direkte Verfahren • Gauß-Elimination • Iterative Verfahren • Jacobi-Verfahren • Gauß-Seidel-Verfahren • Zusammenfassung
Einleitung • Viele Problemstellungen in FuE lassen mit Hilfe von Simulationen lösen • Beschreibung realer Systeme durch mathematische Modelle • Mathematischen Modelle ermöglichen Simulationen von Zuständen / Ergebnissen • Beispiele: • Klimasimulation • Crashtest Simulation • 3D-CAD Modellierungen
Einleitung • Partielle Differentialgleichungen zur werden oft zur Modellierung herangezogen • Modelle sind recht komplex • Benötigen Unterstützung durch Rechner
Gliederung • Einleitung • Differentialgleichungen • Partielle Differentialgleichungen • Diskretisierung • Numerische Lösungsverfahren • Direkte Verfahren • Gauß-Elimination • Iterative Verfahren • Jacobi-Verfahren • Gauß-Seidel-Verfahren • Zusammenfassung
Partielle Differentialgleichungen • Differentialgleichungen: • Beschreiben Verhalten realer Systeme • Gesucht: Funktion y, die die Funktion für x = (x1,…,xn) , wobei G Rn erfüllt, dabei sei Dky die k-te Ableitung der Funktion y • y ist stetig und differenzierbar Bsp.: • Beschreibung einer Flugkurve durch eine Parabel
Partielle Differentialgleichungen • Partielle Differentialgleichungen • Mehrdimensional • Von mehreren Variablen abhängig • Komplexe Berechnungen erforderlich • Unterstützung durch Rechner wünschenswert Bsp.: • Modellierung eines Trampolintuchs beim Einsprung • Rechnerunterstützung • Nur bei endlichen Problemen möglich • Deskritisierung nötig
Gliederung • Einleitung • Differentialgleichungen • Partielle Differentialgleichungen • Diskretisierung • Numerische Lösungsverfahren • Direkte Verfahren • Gauß-Elimination • Iterative Verfahren • Jacobi-Verfahren • Gauß-Seidel-Verfahren • Zusammenfassung
Diskretisierung • Bsp.: Temperaturverlauf in einem Metallstab stetiges Modell: diskretes Modell: • Einteilung in endlich viele Intervalle • Informationsverlust entsteht • Anzahl der Intervalle bestimmt Höhe des Informationsverlusts • Intervallanzahl regelt Komplexität der entstehenden linearen Gleichungssysteme (LGS)
Diskretisierung • Diskretisierung: • Temperaturen T1 und T2 bekannt • Gesucht sind die Temperaturen x1,…,x4 • Temperaturen x1,…,x4 ergeben sich aus dem Durchschnitt der umgebenden Temperaturen • Entstehendes LGS: +x1 - 0,5x2 = 0,5T1 - 0,5x1 + x2 - 0,5x3 = 0 - 0,5x2 + x3 - 0,5x4 = 0 - 0,5x3 + x4 = 0,5T2 • - Matrixschreibweise Ax = b:
Gliederung • Einleitung • Differentialgleichungen • Partielle Differentialgleichungen • Diskretisierung • Numerische Lösungsverfahren • Direkte Verfahren • Gauß-Elimination • Iterative Verfahren • Jacobi-Verfahren • Gauß-Seidel-Verfahren • Zusammenfassung
Numerische Lösungsverfahren • Bezeichnet Verfahren, die Lösungen ‚zahlenmäßig‘ herbeiführen • Durch Algorithmen automatisierbar Zwei Verfahrenstypen: • Direkte Verfahren • Exakte Lösungen • Z.B. Gauß-Elimination, zyklische Reduktion • Iterative Verfahren • Erzeugen Folgen von Vektoren • Näherung der exakten Lösung • Z.B. Jacobi-Verfahren, Gauß-Seidel-Verfahren
Gliederung • Einleitung • Differentialgleichungen • Partielle Differentialgleichungen • Diskretisierung • Numerische Lösungsverfahren • Direkte Verfahren • Gauß-Elimination • Iterative Verfahren • Jacobi-Verfahren • Gauß-Seidel-Verfahren • Zusammenfassung
Gauß-Elimination Vorgehen ausgehend von dem LGS der Form Ax = b: • Schritt 1: LGS transformieren, so dass Matrix A die Form einer oberen Dreieckmatrix annimmt Bsp.:
Gauß-Elimination • Transformation benötigt n-1 Schritte • In jedem Schritt k: und aus und errechnen: • Eliminationsfaktoren l berechnen: • Matrix A(k+1)und Vektor b(k+1)neu berechnen:
Gauß-Elimination • Schritt 2: Durch Rückwärtseinsetzen LGS lösen Bsp.: Rechenvorschrift:
Gauß-Elimination • Problem: • Sollte ein Element der Hauptdiagonalen der Matrix A Null sein bricht der Algorithmus ab (Division durch Null ) • Partielle Pivotisierung • Erfordert mehr Kommunikation/Rechenaufwand
Gauß-Elimination • Sequentielle Implementierung: • 3 ineinander geschachtelte Schleifen Θ(n3) • Parallele Implementierung: • Erfordert wesentlich mehr Kommunikation • Geringer ‚speed-up‘
Gauß-Elimination • Vorteile: • Vorhersagbarkeit der Laufzeit • Vorhersagbarkeit des Speicherbedarfs • exakte Lösung (sofern vorhanden) • Auf jedes LGS anwendbar • Nachteile: • Schlecht parallelisierbar • Bei dünnbesetzten Matrizen entsteht ‚fill-in‘
Gliederung • Einleitung • Differentialgleichungen • Partielle Differentialgleichungen • Diskretisierung • Numerische Lösungsverfahren • Direkte Verfahren • Gauß-Elimination • Iterative Verfahren • Jacobi-Verfahren • Gauß-Seidel-Verfahren • Zusammenfassung
Iterative Verfahren • Liefern nur Näherungen • Aufbauend auf bereits errechnete Näherungen werden weitere Approximationen errechnet • Verfahren erzeugen Folgen von Vektoren {x(k)}k=1,2,…die gegen die gesuchte Lösung x* konvergieren. • Aufwand der Algorithmen nicht ausschließlich abhängig von der Größe des Systems • Für dünnbesetzte Matrizen gut geeignet
Gliederung • Einleitung • Differentialgleichungen • Partielle Differentialgleichungen • Diskretisierung • Numerische Lösungsverfahren • Direkte Verfahren • Gauß-Elimination • Iterative Verfahren • Jacobi-Verfahren • Gauß-Seidel-Verfahren • Zusammenfassung
Jacobi-Verfahren • Idee: • Sind alle bekannt, kann durch Einsetzen der errechnet werden , i = 1,…,n , j = 1,…,n • Problem: • Die sind nicht bekannt • Iterativer Ansatz: • Beliebigen Startvektor als vorläufiges Ergebnis betrachten • Vorläufige Ergebnisse der Iteration k zur Errechnung neuer einsetzen • Iterationsvorschrift: • , i = 1,…,n , j = 1,…,n , k = 1,2,…
Jacobi-Verfahren • Abbruchkriterium: • Anzahl an Iterationen - Abbruch ohne Ergebnis • Lösung ist hinreichend genau: Abbruchkriterium: relativer Fehler ||.|| Vektornorm, z.B. ||x|| = max i=1,...,n|xi| oder ||x||2=(ni=1|x|2)½ . • Eigenschaften in Hinblick auf Parallelisierbarkeit • Berechnung der einzelnen xi nur von vorherigen Iteration abhängig • Keine Datenabhängigkeiten innerhalb einer Iteration • Leicht parallelisierbar
Jacobi-Verfahren • Parallel Implementierung: • Prozessor Pi mit i = 1,…,p speichert n/p Zeilen von A und die dazu gehörigen Werte von b • Möglichkeit Vektor x entweder lokal als auch global gespeichert • Iterationsablauf:
Jacobi-Verfahren • 1. Schritt: Jeder Prozessor Pi hat alle benötigten Daten aus der Approximation x(k) vorliegen und errechnet der Iterationsvorschrift die nächste Aproximation x(k+1) seiner n/p Elemente.
Jacobi-Verfahren • 2. Schritt: Jeder Prozessor sendet seine n/p lokal gespeicherten Elemente des Vektors x(k+1) z.B. mit einer Multibroadcastoperation an die übrigen Prozessoren
Jacobi-Verfahren • 3. Schritt: Abbruchkriterien überprüfen, ggf. Ergebnis ausgeben
Jacobi-Verfahren • Aufwand einer Iteration: • Schritt 1: n/p Werte werden in quadratischer Zeit errechnet Θ(n2 * (n/p)) • Schritt 2: n/p Werte an p-1 Prozessoren verschicken Θ((p-1) * (n/p)) • Schritt 3: Ist abhängig vom Abbruchkriterium, z.B. Θ(n), wenn das globale Maximum verglichen wird
Jacobi-Verfahren • Aufwand des Algorithmus: • (Aufwand einer Iteration) * (Iterationsdurchläufe) • Anzahl der Iterationsdurchläufe abhängig vom Gleichungssystem und der Konvergenzrate • Jacobi-Verfahren hat relativ schlechte Konvergenzrate
Gliederung • Einleitung • Differentialgleichungen • Partielle Differentialgleichungen • Diskretisierung • Numerische Lösungsverfahren • Direkte Verfahren • Gauß-Elimination • Iterative Verfahren • Jacobi-Verfahren • Gauß-Seidel-Verfahren • Zusammenfassung
Gauß-Seidel-Verfahren • Iteratives Verfahren • Gleicher Ansatz wie Jacobi, jedoch: • Innerhalb einer Iteration wird auf die bereits errechneten Werte zurückgegriffen • Dadurch entsteht folgende Iterationsvorschrift • Deutlich bessere Konvergenzrate als das Jacobi-Verfahren • Aber es entstehen Datenabhängigkeiten
Gauß-Seidel-Verfahren • Datenabhängigkeiten
Gauß-Seidel-Verfahren • Gute Anwendbarkeit bei dünnbesetzten Matrizen • Oft bei Modellen die einer Gitterstruktur entsprechen • Bsp.: Temperaturverlauf im Wasserbad • Der Punkt xi,j ist nur von den ihn umgebenden Punkten abhängig: • xi,j = (xi-1,j + xi+1,j + xi,j-1 + xi,j+1)/4
Gauß-Seidel-Verfahren • Bei einem 4x4 Gitter ergibt sich folgendes Bild: • Relative viele Datenabhängigkeiten • Durch Rot-Schwarz-Schema in der Berechnung reduzierbar
Gauß-Seidel-Verfahren • Rot-Schwarz-Schema: • 1. 16 Punkte in rote und schwarze Punkte aufteilen • 2. Punkte so im Gitter angeordnet, dass alle roten Punkte nur schwarze Nachbarn haben und umgekehrt Damit ergibt sich folgende Umordnung:
Gauß-Seidel-Verfahren • Nach der Umordnung: • Damit ergibt sich der Iterationsschritt: • In Vektorschreibweise: Somit ist nur noch von und nur noch von abhängig. - Erst ausrechnen, dann - und sind unabhängig und können daher parallel ausgeführt werden
Gauß-Seidel-Verfahren • Algorithmus: • Schritt: Berechne auf parallelen Prozessoren • Schritt: Mit Multibroadcast-Operation Ergebnisse kommunizieren • Schritt: Berechne auf parallelen Prozessoren • Schritt: Mit Multibroadcast-Operation Ergebnisse kommunizieren • Schritt: Abbruchkriterium überprüfen • Schritt: Vektor und zu gemeinsamen Ergebnisvektor zusammenführen • Aufwand des Rot-Schwarz-Schemas: • Berechnungsaufwand fast identisch mit dem Jacobi-Verfahren • Eine Mulitbroadcast-Operation mehr • Nicht so gut parallelisierbar wie Jacobi • Zusätzlicher Aufwand wird jedoch durch bessere Konvergenzrate kompensiert
Gliederung • Einleitung • Differentialgleichungen • Partielle Differentialgleichungen • Diskretisierung • Numerische Lösungsverfahren • Direkte Verfahren • Gauß-Elimination • Iterative Verfahren • Jacobi-Verfahren • Gauß-Seidel-Verfahren • Zusammenfassung
Zusammenfassung • Differentialgleichungen • Können oft zur mathematischen Modellierung herangezogen werden • Sind stetig • Müssen diskretisiert werden, um numerisch gelöst zu werden • Diskretisierung • Beschreibt den Vorgang ein stetiges Problem in ein diskretes umzuwandeln • Erzeugt lineare Gleichungssysteme, die numerisch lösbar sind
Zusammenfassung Numerische Lösungsverfahren: • Gaus-Eliminations-Verfahren: • Direktes Verfahren • Exakte Lösung wird errechnet • Vorhersagbare Rechenzeit • Vorhersagbarer Speicherbedarf • Auf alle linearen Gleichungssystemen anwendbar • Fill-in kann auftreten • Schlechte Parallelisierbarkeit
Zusammenfassung Numerische Lösungsverfahren: • Jacobi-Verfahren: • Iteratives Verfahren • Kein fill-in • Für dünnbesetzte Matrizen gut geeignet • Rechenzeit nicht vorhersagbar • Laufzeit abhängig von der Komplexität des Gleichungssystem • Schlechte Konvergenzrate
Zusammenfassung Numerische Lösungsverfahren: • Gauß-Seidel-Verfahren: • Iteratives Verfahren • Kein fill-in • Datenabhängigkeiten innerhalb einer Iteration • Nicht so gut parallelisierbar • Für dünnbesetzte Matrizen in Bandstruktur gut geeignet • Rechenzeit nicht vorhersagbar • Laufzeit abhängig von der Komplexität des Gleichungssystem • bessere Konvergenzrate als Jacobi-Verfahren
Literatur • Michael J. Quinn: Parallel Computing, Theory and Practice, 2nd ed., McGraw-Hill, 1994 • Thomas Rauber, Gudula Rünger: Parallele Programmierung, 2. Aufl., Springer, 2007. • Hartmut Schwandt: Parallele Numerik, Eine Einführung, 1. Aufl., Teubner 2003
Vielen dank für Ihre Aufmerksamkeit und ein erholsames Wochenende!