Efficient Expression Templates for Operator Overloading-Based Automatic Differentiation
From MaRDI portal
Publication:2913148
DOI10.1007/978-3-642-30023-3_28zbMATH Open1252.65057arXiv1205.3506OpenAlexW1511734500MaRDI QIDQ2913148FDOQ2913148
Eric T. Phipps, Roger P. Pawlowski
Publication date: 26 September 2012
Published in: Lecture Notes in Computational Science and Engineering (Search for Journal in Brave)
Abstract: Expression templates are a well-known set of techniques for improving the efficiency of operator overloading-based forward mode automatic differentiation schemes in the C++ programming language by translating the differentiation from individual operators to whole expressions. However standard expression template approaches result in a large amount of duplicate computation, particularly for large expression trees, degrading their performance. In this paper we describe several techniques for improving the efficiency of expression templates and their implementation in the automatic differentiation package Sacado. We demonstrate their improved efficiency through test functions as well as their application to differentiation of a large-scale fluid dynamics simulation code.
Full work available at URL: https://arxiv.org/abs/1205.3506
Cited In (16)
- Dimensional reduction of nonlinear finite element dynamic models with finite rotations and energy-based mesh sampling and weighting for computational efficiency
- I'm stuck! How to efficiently debug computational solid mechanics models so you can enjoy the beauty of simulations
- PyAlbany: a Python interface to the C++ multiphysics solver Albany
- Dual numbers and automatic differentiation to efficiently compute velocities and accelerations
- Calibration of elastoplastic constitutive model parameters from full‐field data with automatic differentiation‐based sensitivities
- Scalable implicit incompressible resistive MHD with stabilized FE and fully-coupled Newton-Krylov-AMG
- AutoMat: automatic differentiation for generalized standard materials on GPUs
- Fast Reverse-Mode Automatic Differentiation using Expression Templates in C++
- Code-verification techniques for hypersonic reacting flows in thermochemical nonequilibrium
- A backward automatic differentiation framework for reservoir simulation
- Automatic differentiation of C++ codes on emerging manycore architectures with Sacado
- Towards an automatic uncertainty compiler
- Sacado
- Three-dimensional isogeometric solutions to general boundary value problems of Toupin's gradient elasticity theory at finite strains
- Simulation of finite-strain inelastic phenomena governed by creep and plasticity
- The \textsc{deal.II} finite element library: design, features, and insights
Uses Software
Recommendations
- Title not available (Why is that?) 👍 👎
- Title not available (Why is that?) 👍 👎
- ADOL-C: Automatic Differentiation Using Operator Overloading in C++ 👍 👎
- Automatic differentiation for solving nonlinear partial differential equations: an efficient operator overloading approach 👍 👎
- Expression templates for primal value taping in the reverse mode of algorithmic differentiation 👍 👎
- Automatic differentiation in C++ using expression templates and application to a flow control problem 👍 👎
- Fast Reverse-Mode Automatic Differentiation using Expression Templates in C++ 👍 👎
- Efficient syntax-driven lumping of differential equations 👍 👎
- A Simply Typed λ-Calculus of Forward Automatic Differentiation 👍 👎
This page was built for publication: Efficient Expression Templates for Operator Overloading-Based Automatic Differentiation
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q2913148)