Abstract
There are several AD tools available that all implement different strategies for the reverse mode of AD. The most common strategies are primal value taping (implemented e.g. by ADOL-C) and Jacobian taping (implemented e.g. by Adept and dco/c++). Particulary for Jacobian taping, recent advances using expression templates make it very attractive for large scale software. However, the current implementations are either closed source or miss essential features and flexibility. Therefore, we present the new AD tool CoDiPack (Code Differentiation Package) in this paper. It is specifically designed for minimal memory consumption and optimal runtime, such that it can be used for the differentiation of large scale software. An essential part of the design of CoDiPack is the modular layout and the recursive data structures which not only allow the efficient implementation of the Jacobian taping approach but will also enable other approaches like the primal value taping or new research ideas. We will finally present the performance values of CoDiPack on a generic PDE example and on the SU2 code.
- T. Albring, M. Sagebaum, and N. R. Gauger. 2015. Development of a consistent discrete adjoint solver in an evolving aerodynamic design framework. In 16th AIAA/ISSMO Multidisciplinary Analysis and Optimization Conference. American Institute of Aeronautics and Astronautics, 1--14. DOI:https://doi.org/doi:10.2514/6.2015-3240Google Scholar
- P. Aubert, N. Di Césaré, and O. Pironneau. 2001. Automatic differentiation in C++ using expression templates and application to a flow control problem. Computing and Visualization in Science 3, 4, 197--208. DOI:https://doi.org/10.1007/s007910000048Google ScholarCross Ref
- A. Bahadır. 2003. A fully implicit finite-difference scheme for two-dimensional Burgers’ equations. Applied Mathematics and Computation 137, 1, 131--137.Google ScholarDigital Library
- S. Beal. 2004. Supermacros: Powerful, Maintainable Preprocessor Macros in C++. Retrieved December 21, 2016 from http://wanderinghorse.net/computing/papers/supermacros_cpp.pdf.Google Scholar
- B. M. Bell and J. V. Burke. 2008. Algorithmic differentiation of implicit functions and optimal values. In Advances in Automatic Differentiation, Christian H. Bischof, H. Martin Bücker, Paul D. Hovland, Uwe Naumann, and J. Utke (Eds.). Springer, 67--77. DOI:https://doi.org/10.1007/978-3-540-68942-3_7Google Scholar
- J. Biazar and H. Aminikhah. 2009. Exact and numerical solutions for non-linear Burgers’ equation by VIM. Mathematical and Computer Modelling 49, 7, 1394--1400.Google ScholarDigital Library
- B. Christianson. 1994. Reverse accumulation and attractive fixed points. Optimization Methods and Software (1994), 311--326. DOI:https://doi.org/10.1080/10556789408805572Google Scholar
- T. D. Economon. 2018. Simulation and adjoint-based design for variable density incompressible flows with heat transfer. In Multidisciplinary Analysis and Optimization Conference. AIAA 2018-3111.Google ScholarCross Ref
- T. D. Economon, F. Palacios, S. R. Copeland, T. W. Lukaczyk, and J. J. Alonso. 2015. SU2: An open-source suite for multiphysics simulation and design. AIAA Journal 54, 3, 828--846.Google ScholarCross Ref
- A. Griewank and A. Walther. 2008. Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation (2nd ed.). SIAM, Philadelphia, PA.Google ScholarCross Ref
- R. Hogan. 2014. Fast reverse-mode automatic differentiation using expression templates in C++. ACM Transactions on Mathematical Software 40, 4, 26.Google ScholarDigital Library
- A. Hück, S. Kreutzer, D. Messig, A. Scholtissek, C. Bischof, and C. Hasse. 2018. Application of algorithmic differentiation for exact Jacobians to the universal laminar flame solver. In International Conference on Computational Science. Springer, 480--486.Google Scholar
- A. Hück, C. Bischof, M. Sagebaum, N. R. Gauger, B. Jurgelucks, E. Larour, and G. Perez. 2017. A usability case study of algorithmic differentiation tools on the ISSM ice sheet model. Optimization Methods and Software 33, 4--6 (2018), 844--867. http://dx.doi.org/10.1080/10556788.2017.1396602Google Scholar
- K. Leppkes, J. Lotz, and U. Naumann. 2016. Derivative Code by Overloading in C++ (dco/c++): Introduction and Summary of Features. Technical Report AIB-2016-08. RWTH Aachen University. Retrieved October 22, 2019 from http://aib.informatik.rwth-aachen.de/2016/2016-08.pdf.Google Scholar
- L. Lubkoll. 2017. FunG — Invariant-based modeling. Archive of Numerical Software 5, 1, 169--191. DOI:https://doi.org/10.11588/ans.2017.1.27477Google Scholar
- M. Luers, M. Sagebaum, S. Mann, J. Backhaus, D. Grossmann, and N. R. Gauger. 2018. Adjoint-based volumetric shape optimization of turbine blades. In 2018 Multidisciplinary Analysis and Optimization Conference. AIAA 2018-3638.Google Scholar
- S. A. Nørgaard, M. Sagebaum, N. R. Gauger, and B. S. Lazarov. 2017. Applications of automatic differentiation in topology optimization. Structural and Multidisciplinary Optimization 56, 5 (2017), 1135--1146. http://dx.doi.org/10.1007/s00158-017-1708-2Google ScholarDigital Library
- E. Phipps and R. Pawlowski. 2012. Efficient expression templates for operator overloading-based automatic differentiation. In Recent Advances in Algorithmic Differentiation, Shaun Forth, Paul Hovland, Eric Phipps, Jean Utke, and Andrea Walther (Eds.). Lecture Notes in Computational Science and Engineering, Vol. 87. Springer, Berlin, 309--319. DOI:https://doi.org/10.1007/978-3-642-30023-3_28Google Scholar
- E. T. Phipps, R. A. Bartlett, D. M. Gay, and R. J. Hoekstra. 2008. Large-scale transient sensitivity analysis of a radiation-damaged bipolar junction transistor via automatic differentiation. In Advances in Automatic Differentiation, Christian H. Bischof, H. Martin Bücker, Paul D. Hovland, Uwe Naumann, and J. Utke (Eds.). Springer, 351--362. DOI:https://doi.org/10.1007/978-3-540-68942-3_31Google Scholar
- M. Sagebaum. 2017. MeDiPack: Message Differentiation Package. Retrieved October 22, 2019 from https://www.scicomp.uni-kl.de/software/medi.Google Scholar
- M. Sagebaum, T. Albring, and N. R. Gauger. 2018. Expression templates for primal value taping in the reverse mode of algorithmic differentiation. Optimization Methods and Software 33, 4--6, 1207--1231. https://doi.org/10.1080/10556788.2018.1471140Google ScholarCross Ref
- R. Sanchez, T. Albring, R. Palacios, N. R. Gauger, T. D. Economon, and J. J. Alonso. 2018. Coupled adjoint-based sensitivities in large-displacement fluid-structure interaction using algorithmic differentiation. Internatational Journal for Numerical Methods in Engineering 113, 7, 1081--1107. http://onlinelibrary.wiley.com/doi/10.1002/nme.5700/full.Google ScholarCross Ref
- M. Schwalbach, L. Müller, T. Verstraete, and N. R. Gauger. 2018. CAD-based adjoint multidisciplinary optimization of a radial turbine under structural constraints. Conference Proceedings of GPPS 2018. GPPS, 1--8.Google Scholar
- J. Utke. 2005. Flattening basic blocks. In Automatic Differentiation: Applications, Theory, and Implementations, H. M. Bücker, G. Corliss, P. Hovland, U. Naumann, and B. Norris (Eds.). Lecture Notes in Computational Science and Engineering, Vol. 50. Springer, 121--133. DOI:https://doi.org/10.1007/3-540-28438-9_11Google Scholar
- T. Veldhuizen. 1995. Expression templates. C++ Report 7 (1995), 26--31.Google ScholarDigital Library
- A. Walther and A. Griewank. 2009. Getting started with ADOL-C. In Combinatorial Scientific Computing. Chapman-Hall CRC Computational Science, 181--202.Google Scholar
- B. Y. Zhou, T. Albring, N. R. Gauger, C. R. Ilario da Silva, T. D. Economon, and J. J. Alonso. 2016. An efficient unsteady aerodynamic and aeroacoustic design framework using discrete adjoint. AIAA, 1--18.Google Scholar
- H. Zhu, H. Shu, and M. Ding. 2010. Numerical solutions of two-dimensional Burgers’ equations by discrete Adomian decomposition method. Computers 8 Mathematics with Applications 60, 3, 840--848.Google Scholar
Index Terms
- High-Performance Derivative Computations using CoDiPack
Recommendations
Algorithmic Differentiation of Numerical Methods: Tangent and Adjoint Solvers for Parameterized Systems of Nonlinear Equations
We discuss software tool support for the algorithmic differentiation (AD), also known as automatic differentiation, of numerical simulation programs that contain calls to solvers for parameterized systems of n nonlinear equations. The local ...
Efficient exponential Runge–Kutta methods of high order: construction and implementation
AbstractExponential Runge–Kutta methods have shown to be competitive for the time integration of stiff semilinear parabolic PDEs. The current construction of stiffly accurate exponential Runge–Kutta methods, however, relies on a convergence result that ...
High-order algorithms for Riesz derivative and their applications (II)
In this paper, we firstly develop two high-order approximate formulas for the Riesz fractional derivative. Secondly, we propose a temporal second order numerical method for a fractional reaction-dispersion equation, where we discretize the Riesz ...
Comments