OpenAD/F: A modular open-source tool for automatic differentiation of Fortran codes

被引:77
作者
Utke, Jean [1 ]
Naumann, Uwe [2 ]
Fagan, Mike [3 ]
Tallent, Nathan [3 ]
Strout, Michelle [4 ]
Heimbach, Patrick [5 ]
Hill, Chris [5 ]
Wunsch, Carl [5 ]
机构
[1] Argonne Natl Lab, Argonne, IL 60439 USA
[2] Rhein Westfal TH Aachen, D-52056 Aachen, Germany
[3] Rice Univ, Houston, TX 77251 USA
[4] Colorado State Univ, Ft Collins, CO 80523 USA
[5] MIT, Boston, MA 02139 USA
来源
ACM TRANSACTIONS ON MATHEMATICAL SOFTWARE | 2008年 / 34卷 / 04期
基金
美国国家科学基金会;
关键词
algorithms; performance; automatic differentiation; source transformation; adjoint compiler;
D O I
10.1145/1377596.1377598
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The OpenAD/F tool allows the evaluation of derivatives of functions defined by a Fortran program. The derivative evaluation is performed by a Fortran code resulting from the analysis and transformation of the original program that defines the function of interest. OpenAD/F has been designed with a particular emphasis on modularity, flexibility, and the use of open source components. While the code transformation follows the basic principles of automatic differentiation, the tool implements new algorithmic approaches at various levels, for example, for basic block preaccumulation and call graph reversal. Unlike most other automatic differentiation tools, OpenAD/F uses components provided by the OpenAD framework, which supports a comparatively easy extension of the code transformations in a language-independent fashion. It uses code analysis results implemented in the OpenAnalysis component. The interface to the language-independent transformation engine is an XML-based format, specified through an XML schema. The implemented transformation algorithms allow efficient derivative computations using locally optimized cross-country sequences of vertex, edge, and face elimination steps. Specifically, for the generation of adjoint codes, OpenAD/F supports various code reversal schemes with hierarchical checkpointing at the subroutine level. As an example from geophysical fluid dynamics, a nonlinear time-dependent scalable, yet simple, barotropic ocean model is considered. OpenAD/F's reverse mode is applied to compute sensitivities of some of the model's transport properties with respect to gridded fields such as bottom topography as independent (control) variables.
引用
收藏
页数:36
相关论文
共 35 条
[1]  
Aho Alfred V., 1986, ADDISON WESLEY SERIE
[2]  
Albrecht A, 2003, LECT NOTES COMPUT SC, V2658, P575
[3]  
[Anonymous], 2000, FRONTIERS APPL MATH
[4]  
BERZ M, 1996, P SERIES SIAM
[5]  
BUCKER M, 2006, LECT NOTES COMPUTER, V50
[6]  
CORLISS G, 1991, P AUT DIFF THEOR IMP
[7]  
Corliss G., 2002, AUTOMATIC DIFFERENTI
[8]  
Faure C., 1997, ODYSSEE VERSION 1 6
[9]   Recipes for adjoint code construction [J].
Giering, R ;
Kaminski, T .
ACM TRANSACTIONS ON MATHEMATICAL SOFTWARE, 1998, 24 (04) :437-474
[10]  
GRIEWANK A, 1991, P AUT DIFF THEOR IMP, P126