BibTeX
@ARTICLE{
Sagebaum2019HPD,
title = "High-Performance Derivative Computations using {CoDiPack}",
author = "M. Sagebaum and T. Albring and N.R. Gauger",
url = "https://doi.org/10.1145/3356900",
doi = "10.1145/3356900",
year = "2019",
journal = "ACM Transactions on Mathematical Software",
volume = "45",
number = "4",
ad_tools = "CoDiPack",
publisher = "Association for Computing Machinery",
address = "New York, NY, USA",
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.",
articleno = "38",
numpages = "26",
keywords = "Algorithmic differentiation, expression templates, recursive data structures,
efficient implementation, maintainable implementation"
}
|