Effiziente Berechnung von Adjungierten für komplexe, C/C++-basierte Programmpakete
Final Report Abstract
Die effiziente Berechnung von diskreten Adjungierten gewinnt im Rahmen des Übergangs von der Simulation zu einer auf Ableitungen basierten Optimierung immer mehr an Bedeutung. Ziel dieses Forschungvorhabens war es, adjungierte Informationen mit möglichst geringem Bedarf an Laufzeit und Speicherplatz zur Verfügung zu stellen, wenn das zugrundeliegende Modell als C oder C++ Programm gegeben ist. Dazu wurde auf einer bereits verfügbaren Version des AD-Werkzeuges ADOL-C aufgebaut. Durch eine informatische Analyse des algorithmischen Kerns sowie einer vollständig neu erarbeiteten Modularisierung der benötigten internen Funktionsdarstellung kann nun die Berechnung von diskreten Adjungierten deutlich effizienter durchgeführt werden. U.a. ist es jetzt möglich, auf die Potentiale von Checkpointing-Techniken zurückzugreifen. So können mittlerweile auch für große, unstrukturierte Programme Laufzeiten zur Berechnung von Adjungierten erzielt werden, die den theoretischen Aufwandsabschätzungen für das automatische Differenzieren sehr nahe kommen. Dieses Ziel wurde durch eine sehr erfolgreiche interdisziplinäre Kooperation zwischen der Mathematik und der Informatik erreicht. Die nun verfügbare überarbeitete ADOL-C Version wird bereits erfolgreich im akademischen Bereich für Optimierung und Simulation eingesetzt, beispielweise in der Aerodynamik oder der chemischen Verfahrenstechnik. Aber auch der Sprung in die industrielle Anwendung ist gelungen, wie ein erfolgreicher Einsatz bei der EDF in Frankreich zeigt. Erfreulicherweise konnte durch das Erreichen der gesteckten Ziele die Adjungiertenberechnung auch in einem nicht geplanten Bereich zum Einsatz kommen. Aufgrund der nun verfügbaren modularen internen Funktionsdarstellung war auch die parallele Adjungiertenberechnung für bereits mit OpenMP parallelisierte Programme möglich.
Publications
- Efficient calculation of sensitivities for optimization problems. Proceedings of 3rd German Polish Conference on Optimization 2005. Discussiones Mathematical, Differential Inclusions, Control and Optimization 27, pp. 119 - 134 (2007)
A. Kowarz und A. Walther
- AD-based quasi-Newton methods for the integration of stiff ODEs. In: M. Bücker et al., eds., Automatic Differentiation - Applications, Theory and Implementations, LNCSE 50, pp. 89 - 98, Springer (2006)
S. Schlenkrich, A. Walther und A. Griewank
- Optimal Checkpointing for time-stepping procedures. In: V. Alexandrov et al., eds., Proceedings of IOCS 2006, LNCS 3994, pp. 541 - 549, Spinger (2006)
A. Kowarz und A. Walther
- Adjoint Broyden a la GMRES. MATHE-ON Preprint 413 (2007). Optimization Online
A. Griewank, S. Schlenkrich und A. Walther
- Adjoint-based Quasi-Newton Methods for Nonlinear Equations. TU Dresden (2007)
S. Schlenkrich
- A quasi-Newton method with optimal R-order without independence assumption. Optimization Methods and Software, 23(2) :215-225 (2008)
A. Griewank, S. Schlenkrich und A. Walther
- Advanced Concepts for Automatic Differentiation based on Operator Overloading. TU Dresden (2008)
A. Kowarz
- Computing Sparse Hessians with Automatic Differentiation. Transaction on Mathematical Software, 34(1), Artikel 3 (2008)
A. Walther
- Discrete Adjoints: Theoretical Analysis, Efficient Computation, and Applications. Habilitation, 2008, TU Dresden
A. Walther
- Parallel Derivative Computation Using ADOL-C. Proceedings PASA 2008, Lecture Notes in Informatics, Vol. 124, pp. 83 - 92 (2008)
A. Kowarz und A. Walther