A C++ implementation of the discrete adjoint sensitivity analysis method for explicit adaptive Runge-Kutta methods enabled by automatic adjoint differentiation and SIMD vectorization
Rui Martins, Evgeny Lakshtanov

TL;DR
This paper introduces a C++ library that efficiently performs sensitivity analysis for ODEs using discrete adjoint methods, automatic differentiation, and SIMD vectorization, enabling faster and parallelized computations.
Contribution
The paper presents a novel C++ implementation of discrete adjoint sensitivity analysis for explicit Runge-Kutta methods, leveraging automatic differentiation and SIMD for improved performance.
Findings
The library achieves a small performance advantage over existing software.
Automatic adjoint differentiation efficiently computes Jacobian-vector products.
SIMD vectorization enables concurrent computation of vector-Jacobian products.
Abstract
A C++ library for sensitivity analysis of optimisation problems involving ordinary differential equations (ODEs) enabled by automatic differentiation (AD) and SIMD (Single Instruction, Multiple data) vectorization is presented. The discrete adjoint sensitivity analysis method is implemented for adaptive explicit Runge-Kutta (ERK) methods. Automatic adjoint differentiation (AAD) is employed for efficient evaluations of products of vectors and the Jacobian matrix of the right hand side of the ODE system. This approach avoids the low-level drawbacks of the black box approach of employing AAD on the entire ODE solver and opens the possibility to leverage parallelization. SIMD vectorization is employed to compute the vector-Jacobian products concurrently. We study the performance of other methods and implementations of sensitivity analysis and we find that our algorithm presents a small…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsNumerical methods for differential equations · Matrix Theory and Algorithms · Advanced Numerical Methods in Computational Mathematics
