WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Lösung nichtlinearer Gleichungssysteme Präsentation in Rahmen des Seminars „Parallele Programmierung“ SS 2003 Referent: Roman Achziger Datum: 11.06.2003 Einleitung: Motivation WIRTSCHAFTS INFORMATIK Anwendungsgebiete - Gebiete der Technik, Wirtschafts- und Naturwissenschaften Lösung nichtlinearen Abhängigkeiten - Approximation durch lineare Modelle - Einsatz numerischen Algorithmen Die Standardform nichtlinearer Gleichungssysteme: f1 ( x1 , x2 ..., xn ) f ( x , x ..., x ) 2 1 2 n . . f ( x , x ..., x ) n m 1 2 0 0 = . oder kurz F(x) . 0 2 Grundlagen der Iterationsverfahren WIRTSCHAFTS INFORMATIK Fixpunktiteration: Betrachtung des skalaren Falls - Transformation der vorliegende Gleichung f(x)=0 in eine äquivalente Fixpunktform (x) = x Definition: Ein Element x* R heißt Fixpunkt der Abbildung : R R falls (x*)=x* gilt. - Wähle die Abbildung so, dass x* die Abbildung (x*) = x* und f(x*) = 0 erfüllt - Ausgehend vom Startwert x(0) gilt die Rekursion x(k+1) = (x(k)), x 0 - Abbildung verkleinert sukzessive den Abstand zwischen x(k+1) und x* 3 Grundlagen der Iterationsverfahren WIRTSCHAFTS INFORMATIK y=x 1 0.8 0.6 0.4 (x) = exp(-x2) 0.2 -0.2 x (0)=0 0.2 0.4 0.6 0.8 1 - Spinnweb-Diagramm für (x)= exp(-x2) - Die Folge oszilliert um den Fixpunkt 4 Grundlagen der Iterationsverfahren WIRTSCHAFTS INFORMATIK - Die Wahl einer gute Iterationsfunktion ist entscheidend Definition: Eine auf einer Teilmenge A R definierte Abbildung : A A heißt Kontraktion, wenn eine Lipschitz-Konstante 0<L<1 existiert, so dass für alle Paare x,y A gilt: | (x) - (y)| L |x-y|. L = max | ´(Z)|, mit einem Zwischenwert Z zwischen x und y Z A Die Abbildung konvergiert, wenn dieses Maximum der ersten Ableitung kleiner als 1 5 . Grundlagen der Iterationsverfahren: Beispiel WIRTSCHAFTS INFORMATIK Gesucht ist die Nullstelle von f(x) = x3+x-1,5 - Einsetzen: f(0,8) = -0,188 und f(0,9) = 0,129 Da die Funktion stetig ist, existiert eine Nullstelle x* mit 0,8<x*<0,9 1) 1(x)= -x3+1,5 ; | 1´(x)|=3x2 | 1´(0,8)| <| 1´(x*)|<| 1´(0,9)|<=> 1,92 <| 1´(x*)|< 2,43 abstoßender Fixpunkt: x(0)=0,9; x(1)=0,77; x(2)=1,04; x(3)=0,37 2) 2(x)=(-x3+x+1,5)/2 ; | 2´(x)| =| (-3x2+1)/2| | 2´(0,8) |<| 2´(x*)|<| 2´(0,9)| d.h. 0,46<| 2´(x*)|< 0,715 Die Folge konvergiert gegen x* für Startwerte aus [0,8; 0,9] x(0)=0,9; x(1)=0,8355; x(2)=0,8761; x(3)=0,8518; x(4)=0,8667; x(5)=0,8577; x(5)=0,8633 6 Grundlagen der Iterationsverfahren WIRTSCHAFTS INFORMATIK Banachsche Fixpunktsatz: - Es sei :A A eine Kontraktion über der abgeschlossenen Menge A R mit der Kontraktionskonstanten L< 1. Dann : 1) existiert ein eindeutiger Fixpunkt x* = (x*) in A; 2) konvergiert die durch x(k+1) = (x(k)) definierte Folge für jeden Startwert x(0) A gegen den Fixpunkt; 3) gelten die Abschätzungen: L Lk (k) (k -1) | x - x* | | x - x | | x (1) - x (0) | 1 L 1 L (k) „ a - posteriori “ „a - priori “ 7 Grundlagen der Iterationsverfahren: Einzugsbereich WIRTSCHAFTS INFORMATIK Definition: Die Menge E R heißt Einzugsbereich der Lösung x*, wenn lim x(k)= x* für alle x(0) E gilt. k globale Konvergenz: - Ist der gesamte Definitionsbereich von Einzugsbereich Iterationsfolge konvergiert für alle Startwerte lokale Konvergenz: - Iterationsfolge konvergiert nur auf einer Umgebung um x* 8 Grundlagen der Iterationsverfahren: WIRTSCHAFTS INFORMATIK Konvergenzgeschwindigkeit - Der Fehler (k) := x(k) -x* stellt auf einer kleinen Umgebung von x* das Konvergenzverhalten der Folge dar Lineare Konvergenz: Es gibt eine Konstante q (0; 1), Konvergenzordnung p=1, so dass x ( k 1) x* q x (k ) x* 1 für alle k=0, 1, 2, . . . gilt. der Fehler (k+1) nimmt linear mit dem Faktor q ab Quadratische Konvergenz: Es gibt eine Konvergenzfaktor K > 0 und eine Konvergenzordnung 2 ( k 1) x * K x ( k ) x * für alle k=0, 1, 2, . . . gilt. p=2, so dass x Fehler (k+1) ist proportional zum Quadrat von (k) mit dem Faktor K 9 Grundlagen der Iterationsverfahren: WIRTSCHAFTS INFORMATIK Abbruchkriterien Kompromiss zwischen der Genauigkeit und der Effizienz Abbruch der Verfahren beim Erreichen einer geforderten Genauigkeit - Fehler-Kriterium: Prozess stoppt, wenn || x(k+1)-x(k)|| < abs - Residuums-Kriterium: Prozess stoppt, wenn ||F(x)|| < f Abbruch der Verfahren bei Nicht-Konvergenz - Kriterien: ||x(k)||>xmax oder || F(x(k))|| > fmax oder ||F(x(k))|| > ||F(x(k-1))||> ||F(x(k-2))|| - sicherste Methode: Beschränkung der maximalen Anzahl der Iterationsschritte Verhinderung einer unendlichen Folge 10 Lösung nichtlinearer Gleichungen: WIRTSCHAFTS INFORMATIK Bisektionsverfahren Nullstellensatz für stetige Funktionen - Sei eine stetige Funktion f : [a,b] R mit f(a)*f(b) < 0 gegeben. Dann existiert ein x* (a,b), so dass f(x*) = 0 gilt. Algorithmus: Startintervall: I0 =[x(k-1),x(k)] mit x(k-1) < x(k) und f(x(k-1))f(x(k))< 0 while (Abbruchkriterium nicht erfüllt) { (x(k+1) = x(k-1) + x(k)) /2 if (f(x(k-1))f(x(k+1)) 0 ) x(k)= x(k+1) else x(k-1)= x(k+1) } return x(k) - Lineare Konvergenz mit dem Konvergenzfaktor ½ - Global konvergent 11 Lösung nichtlinearer Gleichungen: WIRTSCHAFTS INFORMATIK Bisektionsverfahren Parallelen Realisierung - Unterteilung des Intervalls in in p+1 Teilintervalle - parallelen Berechnung der p Funktionswerte - Dasjenige mit einen Vorzeichenwechsel wird aus den p+1 Teilintervallen ausgewählt - wiederhole bis Abbruchkriterium erfüllt - Nach k-Schritt wird das Anfangsintervall auf das ( p+1)-k –fache reduziert speed-up von Sp= O(log2 p) 12 Lösung nichtlinearer Gleichungen: WIRTSCHAFTS INFORMATIK Linearisiertes Newton-Verfahren - Ersetzung der Funktion durch eine lineare Modellfunktion - Geometrisch: Der Schnittpunkt der Tangente mit der x-Achse gilt als Näherungswert für die Nullstelle x* (k ) f ( x ) (k+1) (k) - Iterationsvorschrift: x = x , k =0,1,2,..., f ´( x ( k ) ) - Fixpunktiterationen: (x(k))= x(k)- f ( x ) f ´( x ) - Newton-Iteration: x(k+1) = (x(k)), k = 0, 1, 2,...., Eigenschaften: - quadratische Konvergenz - lokale Konvergenz - selbstkorrigierend 13 Lösung nichtlinearer Gleichungssysteme: WIRTSCHAFTS INFORMATIK Fixpunktiteration - Übertragung des skalaren Falls der Fixpunktiteration auf ein n-dimensionales Problem vorliegende Problem: sind : Rn Rn und F: Rn Rn gegeben, finde x* Rn, so dass (x*) = x*. Für einen Fixpunkt x* von gilt F(x*) = 0 - Ausgehend von x(0) Rn konvergiert die Iterationsvorschrift x(k+1) = ( x(k)), für k = 0, 1, 2..... gegen x* 14 Lösung nichtlinearer Gleichungssysteme: WIRTSCHAFTS INFORMATIK Fixpunktiteration parallele Realisierung - vergleichbar zur der parallelen Realisierung eines Iterationsverfahrens zur Lösung linearer Gleichungssysteme - Aufteilung der Komponenten i(x(k)) der Kontraktionsabbildung auf n Prozessoren - blockweise Aufteilung Fixpunktabbildung auf die Prozessoren jeder einzelne Prozessor berechnet n/p Spalten des nächsten Iterationsvektors 1 2 3 4 5 6 7 8 1 2 3 4 P1 P2 5 6 7 8 P3 P4 - Verteilung des Iterationsvektor per Multi-Broadcastoperation 15 Lösung nichtlinearer Gleichungssysteme: Newton-Verfahren WIRTSCHAFTS INFORMATIK - Linearisierung der Funktion F: Rn Rn Iterationsvorschrift: x(k+1)= x(k)-[DF(x(k))]-1 F(x(k)) für k=0, 1, 2, . . .. Fixpunktproblem: (x) = x(k)-[DF(x(k))]-1 F(x(k)) Fixpunktiteration x(k+1) = (x(k)) F1 F1 ( x ) .... ( x) xn x1 . . DF(x)= . . . . Fn Fn ( x ) .... ( x ) x x n 1 Eigenschaften: - quadratische Konvergenz - lokale Konvergenz 16 Lösung nichtlinearer Gleichungssysteme: WIRTSCHAFTS INFORMATIK Newton-Verfahren Einführung eines Korrekturterms (k): 1) x(k+1) = x(k) + (k) 2) DF(x(k))*(k) = - F(x(k)) Überführung des Problem des Lösens eines Systems nichtlinearer Gleichungen in das Problem des Lösens eines linearen Gleichungssystems Rechenaufwand pro Iterationsschritt: - n2 +n Komponenten-Funktionsauswertung - 2n3/3+O(n2) arithmetischen Operationen - n2 + O(n) Speicheroperationen 17 Lösung nichtlinearer Gleichungssysteme: WIRTSCHAFTS INFORMATIK Modifiziertes Newton-Verfahren Zyklisches Aktualisieren der Jacobimatrix - LU-Faktorisierung der Jakobimatrix nur alle n Iterationsschritte Differenzenapproximation der Jacobimatrix - Bestimmung einer Näherung der Jacobimatrix durch n-dimensionale Differenzen Fi Fi ( x ( k ) rj e j ) Fi ( x ( k ) ) - Berechne für jeden Eintrag aus DF(x(k)): x (x(k)) rj j Möglichkeit der Wahl für rj und ej: ||F(x(k) + rjej)- F(x(k))|| F(x(k)) 18 Lösung nichtlinearer Gleichungssysteme: Parallele Implementierung des Newton-Verfahrens WIRTSCHAFTS INFORMATIK - Verwendung des Ergebnisvektors des k-ten Iterationsschrittes als Datum bei der Berechnung des nächsten Iterationsschrittes die Iterationen müssen nacheinender durchgeführt werden Teilaufgaben pro Schritt: - Auswertung der Funktion F Berechnung der Jacobimatrix Durchführung der Gauß-Elimination Berechnung des nächsten Approximationsvektors Kontrolle der Konvergenz des Verfahrens mit Bestimmung der Norm des Korrekturterms 19 Lösung nichtlinearer Gleichungssysteme: WIRTSCHAFTS INFORMATIK Parallele Implementierung des Newton-Verfahrens - Parallelisierung der Teilaufgaben des Iterationsschrittes unter Beachtung der Datenabhängigkeiten Datenabhängigkeit in der Newton-Iteration: x(k) x(k+1) x(k) x(0) x(final) x(k) funktion F(x(k)) jacobian DF(x(k)) gauss F(x(k)) w(k) ||w|| update norm w(k) x(k+1) 20 Lösung nichtlinearer Gleichungssysteme: WIRTSCHAFTS INFORMATIK Parallele Implementierung des Newton-Verfahrens Bei der parallelen Ausführung auf eine gemeinsame Datenverteilung achten Gauß-Elimination verursacht den meisten Rechenaufwand Datenverteilung bzgl. Gauß-Elimination optimieren Durchführung der Gauß-Elimination auf mehreren Prozessoren: - zeilenzyklische Berechnung - gesamtzyklische Berechnung 21 Lösung nichtlinearer Gleichungssysteme: WIRTSCHAFTS INFORMATIK Parallele zeilenzyklische Implementierung - Verteilung der Jacobimatrix zyklisch auf die vorhandenen Prozessoren Berechnung der Jacobimatrix in der entsprechenden Verteilung - Approximation der Jacobimatrix durch: Fi x j (x(k)) Fi ( x ( k ) rj e j ) Fi ( x ( k ) ) rj Berechnung der Jacobimatrix: - Ein Prozessor Pq speichert und berechnet alle Zeilen i mit q = ((i-1) mod p) +1 maximal n / p Zeilen - Vektor x(k) wird repliziert gehalten keine Kommunikation - Gesamtaufwand: T1(n,p)= n / p (n+1) Teval(F) 22 Lösung nichtlinearer Gleichungssysteme: WIRTSCHAFTS INFORMATIK Parallele zeilenzyklische Implementierung Durchführung der Gauß-Elimination - Zeilenzyklische Ablage der Jacobimatrix - Zeilenzyklische Ablage der rechten Seite des zu lösenden Gleichungssystems zeilenzyklischen Variante der Gauß-Elimination ohne Umverteilung der Daten a11 . . . . a1n b1 an1 . . . . ann bn - Ein Prozessor speichert die benötigten Zeilen der Jacobimatrix und den entsprechenden Funktionswert ab 23 Lösung nichtlinearer Gleichungssysteme: WIRTSCHAFTS INFORMATIK Parallele zeilenzyklische Implementierung Berechnung des neuen Iterationsvektors: - Replizierte Ablage des Iterationsvektors x(k) der Newton-Iteration die Prozessoren führen die Berechnung ohne Kommunikation durch Jeder Prozessor p berechnet: - Werte der gespeicherten Funktion - Zugehörige Zeilen der Jacobimatrix - Zugehörige Werte des Vektors (k) - Zugehörige Werte des Vektors x(k+1) - Zugehörige Komponenten der Norm ||(k)|| 24 Lösung nichtlinearer Gleichungssysteme: WIRTSCHAFTS INFORMATIK Parallele zeilenzyklische Implementierung double *newton_zyklisch (double *F( )) { double *x_neu, *x_alt, *temp, *y, f[MAX_SIZE], fg[MIN_SIZE] ; int i, j ; x_neu = x_buf1; x_old= x_buf2; initialize (x_neu); do { temp=x_neu ; x_neu= x_alt ; x_alt=temp ; for (i=me; i<n; i+=p) { fg[ i ] = -F(i, x_alt); for (j=0; i<n; i++) { x_alt[ j ] += r[ j ]; f [ j ] = F(i, x_alt); x_alt[ j ] - = r[ j ]; DF[ i ][ j ] = ( fg[ i ] + f [ j ] ) /r [ j ]; } } y = gauss_zyklisch (DF, fg); for ( j=0 ; j<n; j++ ) x_neu[ j ] = x_alt[ j ] + y[ j ]; } while (norm(x_alt, x_neu ) > (1-L) /L ); return x_neu ; } Berechnung der Jacobimatrix zeilenzyklische Gauß-Elimination Berechnung des neuen Iterationsvektors Überprüfung des Abbruchkriteriums 25 Lösung nichtlinearer Gleichungssysteme: WIRTSCHAFTS INFORMATIK Parallele gesamtzyklische Implementierung Berechnung der Jacobimatrix: - Blockzyklische schachbrettartige Datenverteilung der Matrix 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 P1 P2 P1 P2 P3 P4 P3 P4 P1 P2 P1 P2 P3 P4 P3 P4 Bei gleichen Anzahl der Prozessoren in jeder Dimension berechnet ein n n n2 Prozessor etwa p p p Einträge - Der benötigte Iterationsvektor wird repliziert abgelegt lokales Arbeiten mit der Funktion F 26 Lösung nichtlinearer Gleichungssysteme: WIRTSCHAFTS INFORMATIK Parallele gesamtzyklische Implementierung - Vermeidung von Kommunikation bei der Berechnung der Jacobimatrix zwischen den Prozessoren Fi(x(k)) mindestens p Mal errechnen, da sich an der Berechnung einer Zeile der Jacobimatrix p Prozessoren beteiligen - Es ergibt sich der Gesamtaufwand von: T2(n,p) = n/p( n p )Teval(F) Durchführung der Gauß-Elimination: - Allokierung der Jacobimatrix DF vergleichbar mit der zeilenzyklischen Variante - Eine allokierte Zeile enthält nur noch n / p y +1 Einträge 27 Lösung nichtlinearer Gleichungssysteme : WIRTSCHAFTS INFORMATIK Vergleich der beiden Varianten Zeilenzyklische Implementierung: - geringere Anzahl der Funktionsauswertungen Gesamtzyklische Implementierung: - besseres Kommunikationsverhalten der Gauß-Elimination Wahl abhängig davon, welcher der beiden Aspekte überwiegt - Auswertungsaufwand der Funktion F Zeilenzyklische Implementierung - Kommunikationsverhalten der Zielmaschine Gesamtzyklische Implementierung 28 Zusammenfassung WIRTSCHAFTS INFORMATIK Vielzahl von unterschiedlichen Iterationsverfahren Beurteilung anhand des Effizienzvergleich - Anzahl der Iterationsschritte - Rechenaufwand pro Iterationsschritt Bisektionsverfahren: - für skalaren Fall - einfaches Verfahren mit globaler, lineare Konvergenz Newton-Verfahren: - für skalaren und auch mehrdimensionalen Fall - quadratische, lokale Konvergenz Parallele Realisierung: - Verteilung des Berechnungsaufwands auf mehrere Prozessoren 29 WIRTSCHAFTS INFORMATIK Herzlichen Dank für Ihre Aufmerksamkeit! Noch Fragen? 30