Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

High-Performance Derivative Computations using CoDiPack

Published: 09 December 2019 Publication History

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.
[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.
[3]
A. Bahadır. 2003. A fully implicit finite-difference scheme for two-dimensional Burgers’ equations. Applied Mathematics and Computation 137, 1, 131--137.
[4]
S. Beal. 2004. Supermacros: Powerful, Maintainable Preprocessor Macros in C++. Retrieved December 21, 2016 from http://wanderinghorse.net/computing/papers/supermacros_cpp.pdf.
[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.
[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.
[7]
B. Christianson. 1994. Reverse accumulation and attractive fixed points. Optimization Methods and Software (1994), 311--326.
[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.
[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.
[10]
A. Griewank and A. Walther. 2008. Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation (2nd ed.). SIAM, Philadelphia, PA.
[11]
R. Hogan. 2014. Fast reverse-mode automatic differentiation using expression templates in C++. ACM Transactions on Mathematical Software 40, 4, 26.
[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.
[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.1396602
[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.
[15]
L. Lubkoll. 2017. FunG — Invariant-based modeling. Archive of Numerical Software 5, 1, 169--191.
[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.
[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-2
[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.
[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.
[20]
M. Sagebaum. 2017. MeDiPack: Message Differentiation Package. Retrieved October 22, 2019 from https://www.scicomp.uni-kl.de/software/medi.
[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.1471140
[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.
[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.
[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.
[25]
T. Veldhuizen. 1995. Expression templates. C++ Report 7 (1995), 26--31.
[26]
A. Walther and A. Griewank. 2009. Getting started with ADOL-C. In Combinatorial Scientific Computing. Chapman-Hall CRC Computational Science, 181--202.
[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.
[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.

Cited By

View all
  • (2024)Flow Topology Optimization at High Reynolds Numbers Based on Modified Turbulence ModelsAerospace10.3390/aerospace1107052511:7(525)Online publication date: 27-Jun-2024
  • (2024)On-the-Fly Unsteady Adjoint Aerodynamic and Aeroacoustic Optimization MethodAIAA Journal10.2514/1.J064455(1-19)Online publication date: 13-Aug-2024
  • (2024)A Matrix-Free Exact Newton MethodSIAM Journal on Scientific Computing10.1137/23M157017X46:3(A1423-A1440)Online publication date: 2-May-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

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
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: 09 December 2019
Accepted: 01 July 2019
Revised: 01 July 2019
Received: 01 October 2017
Published in TOMS Volume 45, Issue 4

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Algorithmic differentiation
  2. efficient implementation
  3. expression templates
  4. maintainable implementation
  5. recursive data structures

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

  • Enabling Performance Engineering in Hesse and Rhineland-Palatinate
  • Deutsche Forschungsgemeinschaft (DFG)

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)70
  • Downloads (Last 6 weeks)3
Reflects downloads up to 30 Aug 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Flow Topology Optimization at High Reynolds Numbers Based on Modified Turbulence ModelsAerospace10.3390/aerospace1107052511:7(525)Online publication date: 27-Jun-2024
  • (2024)On-the-Fly Unsteady Adjoint Aerodynamic and Aeroacoustic Optimization MethodAIAA Journal10.2514/1.J064455(1-19)Online publication date: 13-Aug-2024
  • (2024)A Matrix-Free Exact Newton MethodSIAM Journal on Scientific Computing10.1137/23M157017X46:3(A1423-A1440)Online publication date: 2-May-2024
  • (2024)Making Likelihood Calculations Fast: Automatic Differentiation Applied to RooFitEPJ Web of Conferences10.1051/epjconf/202429506014295(06014)Online publication date: 6-May-2024
  • (2024)Counting solutions of a polynomial system locally and exactlyJournal of Symbolic Computation10.1016/j.jsc.2023.102222120:COnline publication date: 1-Jan-2024
  • (2024)A duality-preserving adjoint method for segregated Navier–Stokes solversJournal of Computational Physics10.1016/j.jcp.2024.112860503(112860)Online publication date: Apr-2024
  • (2024)Automatic adjoint-based design optimization for laminar combustion applicationsFuel10.1016/j.fuel.2024.131751370(131751)Online publication date: Aug-2024
  • (2024)Data-driven aerodynamic shape design with distributionally robust optimization approachesComputer Methods in Applied Mechanics and Engineering10.1016/j.cma.2024.117131429(117131)Online publication date: Sep-2024
  • (2024)The effect of variations in experimental and computational fidelity on data assimilation approachesTheoretical and Computational Fluid Dynamics10.1007/s00162-024-00708-y38:3(431-450)Online publication date: 2-Jul-2024
  • (2024)A taxonomy of automatic differentiation pitfallsWIREs Data Mining and Knowledge Discovery10.1002/widm.1555Online publication date: 2-Sep-2024
  • Show More Cited By

View Options

Get Access

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media