skip to main content
research-article

High-Performance Derivative Computations using CoDiPack

Published:09 December 2019Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle Scholar
  2. 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 ScholarGoogle ScholarCross RefCross Ref
  3. A. Bahadır. 2003. A fully implicit finite-difference scheme for two-dimensional Burgers’ equations. Applied Mathematics and Computation 137, 1, 131--137.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. S. Beal. 2004. Supermacros: Powerful, Maintainable Preprocessor Macros in C++. Retrieved December 21, 2016 from http://wanderinghorse.net/computing/papers/supermacros_cpp.pdf.Google ScholarGoogle Scholar
  5. 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 ScholarGoogle Scholar
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. B. Christianson. 1994. Reverse accumulation and attractive fixed points. Optimization Methods and Software (1994), 311--326. DOI:https://doi.org/10.1080/10556789408805572Google ScholarGoogle Scholar
  8. 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 ScholarGoogle ScholarCross RefCross Ref
  9. 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 ScholarGoogle ScholarCross RefCross Ref
  10. A. Griewank and A. Walther. 2008. Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation (2nd ed.). SIAM, Philadelphia, PA.Google ScholarGoogle ScholarCross RefCross Ref
  11. R. Hogan. 2014. Fast reverse-mode automatic differentiation using expression templates in C++. ACM Transactions on Mathematical Software 40, 4, 26.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle Scholar
  13. 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 ScholarGoogle Scholar
  14. 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 ScholarGoogle Scholar
  15. 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 ScholarGoogle Scholar
  16. 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 ScholarGoogle Scholar
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle Scholar
  19. 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 ScholarGoogle Scholar
  20. M. Sagebaum. 2017. MeDiPack: Message Differentiation Package. Retrieved October 22, 2019 from https://www.scicomp.uni-kl.de/software/medi.Google ScholarGoogle Scholar
  21. 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 ScholarGoogle ScholarCross RefCross Ref
  22. 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 ScholarGoogle ScholarCross RefCross Ref
  23. 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 ScholarGoogle Scholar
  24. 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 ScholarGoogle Scholar
  25. T. Veldhuizen. 1995. Expression templates. C++ Report 7 (1995), 26--31.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. A. Walther and A. Griewank. 2009. Getting started with ADOL-C. In Combinatorial Scientific Computing. Chapman-Hall CRC Computational Science, 181--202.Google ScholarGoogle Scholar
  27. 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 ScholarGoogle Scholar
  28. 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 ScholarGoogle Scholar

Index Terms

  1. High-Performance Derivative Computations using CoDiPack

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM Transactions on Mathematical Software
            ACM Transactions on Mathematical Software  Volume 45, Issue 4
            December 2019
            207 pages
            ISSN:0098-3500
            EISSN:1557-7295
            DOI:10.1145/3375544
            Issue’s Table of Contents

            Copyright © 2019 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 9 December 2019
            • Revised: 1 July 2019
            • Accepted: 1 July 2019
            • Received: 1 October 2017
            Published in toms Volume 45, Issue 4

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article
            • Research
            • Refereed

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader

          HTML Format

          View this article in HTML Format .

          View HTML Format