|
Organizers |
Expressions templates and forward mode in C++.
by
Pierre Aubert
INSA-Lyon
Coauthors: Nicolas Di Cesare (Paris VI)
This work deals with an implementation of automatic differentiation of C++ computer programs in forward mode using operator overloading and expression templates. This techniques, dedicated to C++ programs, are a way to ''teach'' to the compiler how to handle dependencies. It replace the classical overloading technique used for example in ADOL-C or FADBAD by a new scheme called expressions templates. A complete description and software source are available on
<URL:http://pcmath03.insa-lyon.fr/ paubert/software/>
We then apply this tool to a flow control problem : minimize the drag of a cylinder, in sub-sonic unsteady turbulent flow, by controlling the boundary condition of the cylinder.
We report on the efficiency of such implementation and its obvious advantage : the ability to perform sensitivity analysis without touching the source of the computer program by simply adding a library to it.
A more complete version dealing with BLAS-like software is underway: this new version use blocked algorithms to improve the performance of the derivation. Preliminary results show a increase of 4 to 5 in performance by improving locality of datas and a more careful control of datas flows.
Date received: February 21, 2000
Copyright © 2000 by the author(s). The author(s) of this document and the organizers of the conference have granted their consent to include this abstract in Atlas Conferences Inc. Document # cads-85.