High-performance derivative computations using CoDiPack
From MaRDI portal
Abstract: There are several AD tools available, which all implement different strategies for the reverse mode of AD. The major strategies are primal value taping (implemented e.g. by ADOL-c) and Jacobi taping (implemented e.g. by adept and dco/c++). Especially for Jacobi taping, recent advances by using expression templates make this approach very attractive for large scale software. 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 a 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 do not only allow the efficient implementation of the Jacobi taping approach, but will also enable other approaches like the primal value taping or new research ideas. We will also present the performance value of CoDiPack on a generic PDE example and on the SU2 code.
Recommendations
- Expression templates for primal value taping in the reverse mode of algorithmic differentiation
- Fast reverse-mode automatic differentiation using expression templates in C++
- The Tapenade automatic differentiation tool, principles, model, and specification
- scientific article; zbMATH DE number 5353274
- scientific article; zbMATH DE number 992839
Cited in
(27)- Monte-Carlo finite-volume methods in uncertainty quantification for hyperbolic conservation laws
- Adjoint-based fluid dynamic design optimization in quasi-periodic unsteady flow problems using a harmonic balance method
- Consistent treatment of incompletely converged iterative linear solvers in reverse-mode algorithmic differentiation
- AutoMat: automatic differentiation for generalized standard materials on GPUs
- Combining Sobolev smoothing with parameterized shape optimization
- Efficient computation of nonlinear isogeometric elements using the adjoint method and algorithmic differentiation
- A discrete adjoint method for pressure-based algorithms
- Aerodynamic shape optimization based on discrete adjoint and RBF
- CasADi: a symbolic package for automatic differentiation and optimal control
- Fast higher-order derivative tensors with Rapsodia
- Efficiently and easily integrating differential equations with JiTCODE, JiTCDDE, and JiTCSDE
- CFD Newton Solvers with EliAD: An Elimination Automatic Differentiation Tool
- Elimination AD applied to Jacobian assembly for an implicit compressible CFD solver
- Expression templates for primal value taping in the reverse mode of algorithmic differentiation
- Seeding and adjoining zero-halo partitioned parallel scientific codes
- A non-intrusive parallel-in-time approach for simultaneous optimization with unsteady PDEs
- A Conceptual Alternative Machine Learning-Based Method for Mesh Sensitivities Calculation in a Turbomachinery Blades Optimisation Framework
- Adjoint-Based Sensitivity Analysis in High-Temperature Fluid Flows with Paticipating Media
- Algorithmic differentiation for adjoint sensitivity calculation in plasma edge codes
- Discrete adjoint gradient evaluations for linear stress and vibration analysis
- A matrix-free exact Newton method
- Data-driven aerodynamic shape design with distributionally robust optimization approaches
- Event-based automatic differentiation of OpenMP with opDiLib
- Data-flow reversal and garbage collection
- Forward-mode automatic differentiation of compiled programs
- Hybrid parallel discrete adjoints in SU2
- Adjoint-based goal-oriented implicit shock tracking using full space mesh optimization
This page was built for publication: High-performance derivative computations using CoDiPack
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q4960959)