Adjoints of large simulation codes through Automatic Differentiation
DOI:
https://doi.org/10.13052/REMN.17.63-86Keywords:
Automatic Differentiation, reverse mode, checkpointing, adjoint methods, gradientAbstract
Adjoint methods are the choice approach to obtain gradients of large simulation codes. Automatic Differentiation has already produced adjoint codes for several simulation codes, and research continues to apply it to even larger applications. We compare the approaches chosen by existing Automatic Differentiation tools to build adjoint algorithms. These approaches share similar problems related to data-flow and memory traffic. We present some current state-of-the-art answers to these problems, and show the results on some applications.
Downloads
References
Bischof C., Carle A., Khademi P., Mauer A., “ ADIFOR 2.0: Automatic Differentiation of
Fortran 77 Programs”, IEEE Computational Science & Engineering, vol. 3, n° 3, p. 18-32,
Bischof C., Lang B., Vehreschild A., “ Automatic Differentiation for MATLAB Programs”,
Proceedings in Applied Mathematics and Mechanics, vol. 2, n° 1, p. 50-53, 2003.
Bücker M., Corliss G., Hovland P., Naumann U., Norris B. (eds), Automatic Differentiation:
Applications, Theory, and Implementations, vol. 50 of Lecture Notes in Computer Science
and Engineering, Springer, 2006.
Corliss G., Faure C., Griewank A., Hascoët L., Naumann U. (eds), Automatic Differentiation of
Algorithms, from Simulation to Optimization, LNCSE, Springer, 2001.
Forth S., “ An Efficient Overloaded Implementation of Forward Mode Automatic Differentiation
in MATLAB”, ACM Transactions on Mathematical Software, vol. 32, n° 2, p. 195-222,
Giering R., Kaminski T., Slawig T., “ Generating Efficient Derivative Code with TAF: Adjoint
and Tangent Linear Euler Flow Around an Airfoil”, Future Generation Computer Systems,
vol. 21, n° 8, p. 1345-1355, 2005. http://www.FastOpt.com/papers/Giering2005GED.pdf.
Griewank A., “ Achieving logarithmic growth of temporal and spatial complexity in reverse
automatic differentiation”, Optimization Methods and Software, vol. 1, n° 1, p. 35-54, 1992.
Griewank A., Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation,
Frontiers in Applied Mathematics, SIAM, 2000.
Griewank A., Juedes D., Utke J., “ Adol-C: a package for the automatic differentiation of algorithms
written in C/C++”, ACM Transactions on Mathematical Software, vol. 22, p. 131-
, 1996. http://www.math.tu-dresden.de/ adol-c.
Grimm J., Pottier L., Rostaing N., “ Optimal Time and Minimum Space-Time Product for Reversing
a Certain Class of Programs”, inM. Berz, C. H. Bischof, G. F. Corliss, A. Griewank
(eds), Computational Differentiation: Techniques, Applications, and Tools, SIAM, p. 95-
, 1996.
Hascoët L., Dauvergne B., “ The Data-Flow Equations of Checkpointing in Reverse Automatic
Differentiation”, in Alexandrov et al. (ed.), Computational Science – ICCS 2006, vol. 3994
of Lecture Notes in Computer Science, Springer, p. 566-573, 2006.
Hascoët L., Pascual V., TAPENADE 2.1 User’s Guide, Technical Report n° 300, INRIA, 2004.
http://www.inria.fr/rrrt/rt-0300.html.
Mani K., Mavriplis D.-J., “ An Unsteady Discrete Adjoint Formulation for Two-Dimensional
Flow Problems with Deforming Meshes”, AIAA Aerospace Sciences Meeting, Reno, NV,
AIAA Paper 2007-0060, 2007.
Naumann U., Riehme J., “ A Differentiation-Enabled Fortran 95 Compiler”, ACM Transactions
on Mathematical Software, 2005.
Utke J., Naumann U., OpenAD/F: User manual, Technical report, Argonne National Laboratory,
http://www.mcs.anl.gov/openad/.
Verma A., “ ADMAT: Automatic Differentiation in MATLAB Using Object Oriented Methods”,
in M. E. Henderson, C. R. Anderson, S. L. Lyons (eds), Object Oriented Methods
for Interoperable Scientific and Engineering Computing: Proceedings of the 1998 SIAM
Workshop, SIAM, Philadelphia, p. 174-183, 1999.