WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK 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 WIRTSCHAFTS INFORMATIK 1. Einleitung 2. Differentialgleichungen Partielle Differentialgleichungen Diskretisierung 3. Numerische Lösungsverfahren Direkte Verfahren - Gauß-Elimination Iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren 4. Zusammenfassung 2 Gliederung WIRTSCHAFTS INFORMATIK 1. Einleitung 2. Differentialgleichungen Partielle Differentialgleichungen Diskretisierung 3. Numerische Lösungsverfahren Direkte Verfahren - Gauß-Elimination Iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren 4. Zusammenfassung 3 Einleitung WIRTSCHAFTS INFORMATIK 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 4 Einleitung WIRTSCHAFTS INFORMATIK Partielle Differentialgleichungen zur werden oft zur Modellierung herangezogen Modelle sind recht komplex Benötigen Unterstützung durch Rechner 5 Gliederung WIRTSCHAFTS INFORMATIK 1. Einleitung 2. Differentialgleichungen Partielle Differentialgleichungen Diskretisierung 3. Numerische Lösungsverfahren Direkte Verfahren - Gauß-Elimination Iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren 4. Zusammenfassung 6 Partielle Differentialgleichungen WIRTSCHAFTS INFORMATIK Differentialgleichungen: - Beschreiben Verhalten realer Systeme - Gesucht: Funktion y, die die Funktion F ( x, y, Dy , D 2 y,..., D n y) 0 für x = (x1,…,xn) G, 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 7 Partielle Differentialgleichungen WIRTSCHAFTS INFORMATIK 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 8 Gliederung WIRTSCHAFTS INFORMATIK 1. Einleitung 2. Differentialgleichungen Partielle Differentialgleichungen Diskretisierung 3. Numerische Lösungsverfahren Direkte Verfahren - Gauß-Elimination Iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren 4. Zusammenfassung 9 Diskretisierung WIRTSCHAFTS INFORMATIK 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) 10 Diskretisierung WIRTSCHAFTS INFORMATIK 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,5x1 - 0,5x2 + x2 - 0,5x2 - 0,5x3 + x3 - 0,5x3 - 0,5x4 + x4 = 0,5T1 =0 =0 = 0,5T2 - Matrixschreibweise Ax = b: 0,5 0 0 x1 0,5T1 1 x 0 0 , 5 1 0 , 5 0 2 * 0 x3 0 0,5 1 0,5 0 0 0,5 1 x 4 0,5T2 11 Gliederung WIRTSCHAFTS INFORMATIK 1. Einleitung 2. Differentialgleichungen Partielle Differentialgleichungen Diskretisierung 3. Numerische Lösungsverfahren Direkte Verfahren - Gauß-Elimination Iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren 4. Zusammenfassung 12 Numerische Lösungsverfahren WIRTSCHAFTS INFORMATIK 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 13 Gliederung WIRTSCHAFTS INFORMATIK 1. Einleitung 2. Differentialgleichungen Partielle Differentialgleichungen Diskretisierung 3. Numerische Lösungsverfahren Direkte Verfahren - Gauß-Elimination Iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren 4. Zusammenfassung 14 Gauß-Elimination WIRTSCHAFTS INFORMATIK Vorgehen ausgehend von dem LGS der Form Ax = b: 0,5 0 0 x1 0,5T1 1 1 0,5 0 x2 0 0,5 * 0 0,5 1 0,5 x3 0 0 0 0,5 1 x4 0,5T2 Schritt 1: LGS transformieren, so dass Matrix A die Form einer oberen Dreieckmatrix A annimmt Ax b Ax b Bsp.: 0,5 0 0 x1 0,5T1 1 x 0 0 , 5 1 0 , 5 0 2 * 0 x3 0 0,5 1 0,5 0 0 0,5 1 x 4 0,5T2 0,5T1 0 0 x1 1 0,5 x 0 , 25 T 0 0 , 75 0 , 5 0 2 1 * 0 x3 0,1 6T1 0 0, 6 0,5 0 0 0 0,625 x4 0,5T2 0,125T1 15 Gauß-Elimination WIRTSCHAFTS INFORMATIK Transformation benötigt n-1 Schritte In jedem Schritt k: A( k 1) und b ( k 1) aus A(k ) und b ( k ) errechnen: - Eliminationsfaktoren l berechnen: aik( k ) (k ) lik ( k ) , i k 1,..., n akk - Matrix A(k+1) und Vektor b(k+1) neu berechnen: a ( k 1) ij ( k 1) b i (k ) a ij l ik * (k ) a kj bi l ik * bk (k ) (k ) 16 Gauß-Elimination WIRTSCHAFTS INFORMATIK Schritt 2: Durch Rückwärtseinsetzen LGS lösen Bsp.: 0,5T1 0 0 x1 1 0,5 0,25T1 0 x2 0 0,75 0,5 * 0 0,1 6T1 0 0, 6 0,5 x3 0 x 0,5T 0,125T 0 0 0 , 625 4 2 1 1 0 0 0 0 0 0 x1 0,8T1 0,2T2 1 0 0 x2 0,6T1 0,4T2 * 0 1 0 x3 0,4T1 0,6T2 0 0 1 x4 0,2T1 0,8T2 Rechenvorschrift: n 1 (n) (n) xk ( n ) bk akj x j , k n, n 1,...,1 akk j k 1 17 Gauß-Elimination WIRTSCHAFTS INFORMATIK Problem: - Sollte ein Element der Hauptdiagonalen der Matrix A Null sein bricht der Algorithmus ab (Division durch Null ) Partielle Pivotisierung Erfordert mehr Kommunikation/Rechenaufwand i i+1 n Koeffizienten, die sich nicht verändern Pivot-Zeile i i i+1 Koeffizienten, die bereits den Wert Null haben Koeffizienten, die sich verändern werden n Koeffizienten, die den Wert Null erhalten sollen 18 Gauß-Elimination WIRTSCHAFTS INFORMATIK Sequentielle Implementierung: - 3 ineinander geschachtelte Schleifen Θ(n3) Parallele Implementierung: - Erfordert wesentlich mehr Kommunikation - Geringer ‚speed-up‘ a11 a12 0 a22 A 0 a1,k 1 a1k a2,k 1 a2 k ak 1,k 1 ak 1,k 0 akk 0 0 a1n a2 n ak 1,n akn ann 19 Gauß-Elimination WIRTSCHAFTS INFORMATIK 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‘ 20 Gliederung WIRTSCHAFTS INFORMATIK 1. Einleitung 2. Differentialgleichungen Partielle Differentialgleichungen Diskretisierung 3. Numerische Lösungsverfahren Direkte Verfahren - Gauß-Elimination Iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren 4. Zusammenfassung 21 Iterative Verfahren WIRTSCHAFTS INFORMATIK 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 22 Gliederung WIRTSCHAFTS INFORMATIK 1. Einleitung 2. Differentialgleichungen Partielle Differentialgleichungen Diskretisierung 3. Numerische Lösungsverfahren Direkte Verfahren - Gauß-Elimination Iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren 4. Zusammenfassung 23 Jacobi-Verfahren WIRTSCHAFTS INFORMATIK Idee: - Sind alle x , j i j, i 1,..., n bekannt, kann x durch Einsetzen der j i xj errechnet werden xi 1 bi aij x j aii j i , i = 1,…,n , j = 1,…,n Problem: - Die x sind nicht bekannt Iterativer Ansatz: - Beliebigen Startvektor als vorläufiges Ergebnis betrachten - Vorläufige Ergebnisse x der Iteration k zur Errechnung neuer x j (k ) j ( k 1) i einsetzen - Iterationsvorschrift: ( k 1) i x , i = 1,…,n , j = 1,…,n , k = 1,2,… 1 (k ) bi aij x j aii j i 24 Jacobi-Verfahren WIRTSCHAFTS INFORMATIK Abbruchkriterium: - Anzahl an Iterationen - Abbruch ohne Ergebnis - Lösung ist hinreichend genau: Abbruchkriterium: relativer Fehler x ( k 1) x ( k ) x ( k 1) ||.|| Vektornorm, z.B. ||x|| = max i=1,...,n|xi| oder ||x||2=(n i=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 25 Jacobi-Verfahren WIRTSCHAFTS INFORMATIK 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: A P0 x(0) P1 b x(k+1) x(k+1) 0 1 2 3 Abbruch testen 4 5 6 7 Ausgabe Multibroadcastoperation Initialisierung Iteration k 26 Jacobi-Verfahren WIRTSCHAFTS INFORMATIK 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. A P0 x(0) P1 b x(k+1) x(k+1) 0 1 2 3 Abbruch testen 4 5 6 7 Ausgabe Multibroadcastoperation Initialisierung Iteration k 27 Jacobi-Verfahren WIRTSCHAFTS INFORMATIK 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 A P0 x(0) P1 b x(k+1) x(k+1) 0 1 2 3 Abbruch testen 4 5 6 7 Ausgabe Multibroadcastoperation Initialisierung Iteration k 28 Jacobi-Verfahren WIRTSCHAFTS INFORMATIK 3. Schritt: Abbruchkriterien überprüfen, ggf. Ergebnis ausgeben A P0 x(0) P1 b x(k+1) x(k+1) 0 1 2 3 Abbruch testen 4 5 6 7 Ausgabe Multibroadcastoperation Initialisierung Iteration k 29 Jacobi-Verfahren WIRTSCHAFTS INFORMATIK 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 30 Jacobi-Verfahren WIRTSCHAFTS INFORMATIK 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 31 Gliederung WIRTSCHAFTS INFORMATIK 1. Einleitung 2. Differentialgleichungen Partielle Differentialgleichungen Diskretisierung 3. Numerische Lösungsverfahren Direkte Verfahren - Gauß-Elimination Iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren 4. Zusammenfassung 32 Gauß-Seidel-Verfahren WIRTSCHAFTS INFORMATIK Iteratives Verfahren Gleicher Ansatz wie Jacobi, jedoch: - Innerhalb einer Iteration wird auf die bereits errechneten Werte zurückgegriffen - Dadurch entsteht folgende Iterationsvorschrift x ( k 1) i 1 aii i 1 bi aij x (jk 1) j 1 xi von Iteration k+1 n a j i 1 ij x (k ) j xi von Iteration k - Deutlich bessere als 1 ( k 1Konvergenzrate ) ( k ) das Jacobi-Verfahren xi bi aij x j - Aber es entstehen Datenabhängigkeiten aii j i 33 Gauß-Seidel-Verfahren WIRTSCHAFTS INFORMATIK Datenabhängigkeiten a11 a12 a21 a22 A a31 a32 a 41 a42 x ( k 1) i 1 aii a13 a23 a33 a43 i 1 bi aij x (jk 1) j 1 a14 a24 a34 a44 n a j i 1 ij x (k ) j 34 Gauß-Seidel-Verfahren WIRTSCHAFTS INFORMATIK Gute Anwendbarkeit bei dünnbesetzten Matrizen Oft bei Modellen die einer Gitterstruktur entsprechen Bsp.: Temperaturverlauf im Wasserbad xi,j-1 xi-1,j xij xi+1,j xi,j+1 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 35 Gauß-Seidel-Verfahren WIRTSCHAFTS INFORMATIK Bei einem 4x4 Gitter ergibt sich folgendes Bild: b) schematische Darstellung der Matrix A a) 4x4 Gitter 1 2 3 4 x x x x x x x x x x x x x 5 6 7 8 x x x x x x x x x x x x x x x x x x 9 10 11 12 x x x x x x x x x x x x x x x x x x 14 15 16 x x x x x x 13 x x x x x x x x x Relative viele Datenabhängigkeiten Durch Rot-Schwarz-Schema in der Berechnung reduzierbar 36 Gauß-Seidel-Verfahren WIRTSCHAFTS INFORMATIK 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: a) 4x4 Gitter in rotschwarz Anordnung b) schematische Darstellung der Matrix A´ x 1 9 2 10 x x x x x x x x x x x 11 3 12 x x x x x x x 4 x x x x x x x 5 13 6 14 x x x x x 7 16 8 x x x x x x x x x 15 x x x x x x x x x x x x x x x x x x x x x x x x 37 Gauß-Seidel-Verfahren WIRTSCHAFTS INFORMATIK Nach der Umordnung: ˆA * xˆ DR E Damit ergibt sich der Iterationsschritt: DR E F xˆ R bˆ1 * DS xˆ S bˆ2 0 xR( k 1) b1 0 F xR( k ) * ( k 1) * ( k ) DS xS b2 0 0 xS In Vektorschreibweise: (k ) DR * x R( k 1) b1 F * x S( k ) DS * x S( k 1) b2 E * x R( k 1) ( k 1) Somit ist x R( k 1) nur noch von x S und x S nur noch ( k 1) von x R abhängig. - Erst x R( k 1) ausrechnen, dann x S( k 1) - x R( k 1) und x S( k 1) sind unabhängig und können daher parallel ausgeführt werden 38 Gauß-Seidel-Verfahren WIRTSCHAFTS INFORMATIK Algorithmus: 1. Schritt: Berechne x auf parallelen Prozessoren 2. Schritt: Mit Multibroadcast-Operation Ergebnisse kommunizieren 3. Schritt: Berechne x auf parallelen Prozessoren 4. Schritt: Mit Multibroadcast-Operation Ergebnisse kommunizieren 5. Schritt: Abbruchkriterium überprüfen 6. Schritt: Vektor x und x zu gemeinsamen Ergebnisvektor ( k 1) R ( k 1) S ( k 1) R ( k 1) S 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 39 Gliederung WIRTSCHAFTS INFORMATIK 1. Einleitung 2. Differentialgleichungen Partielle Differentialgleichungen Diskretisierung 3. Numerische Lösungsverfahren Direkte Verfahren - Gauß-Elimination Iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren 4. Zusammenfassung 40 Zusammenfassung WIRTSCHAFTS INFORMATIK 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 41 Zusammenfassung WIRTSCHAFTS INFORMATIK 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 42 Zusammenfassung WIRTSCHAFTS INFORMATIK 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 43 Zusammenfassung WIRTSCHAFTS INFORMATIK 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 44 Literatur WIRTSCHAFTS INFORMATIK 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 45 WIRTSCHAFTS INFORMATIK Vielen dank für Ihre Aufmerksamkeit und ein erholsames Wochenende! 46