Autyomatic Differentiation of C/C++
Software
·
OSTI ID:1231213
Automatic differentiation (AD) tools mechanize the process of developing code for the computation of derivatives. AD avoids the inaccuracies inherent in numerical approximations. Furthermore, sophisticated AD algoirthms can often produce c ode that is more reliable and more efficient than code written by an expert programmer. ADIC is the first and only AD tool for C and C++ based on compiler technology. This compiler foundation makes possible analyses and optimizations not available in toos based on operator overloading. The earliest implementations of ADIC included support for ANSI C applications, ADIC 2.0 lverages EDG, a commercial C/C++ parser, to provide robust C++ differentiation support. Modern AD tools, including ADIC are implemented in a modular way, aiming to isolate language-dependent program analyses and semantic transformations. The component design leads to much higher implementation quality because the different components can be implemented by experts in each of the different domains involved. For example, a compiler expert can focus on parsing, canonicalizing, and unparising C and C++, while an expert in graph theory and algorithms can produce new differentiation modules without having to worry about the complexity of parsing and generating C++ code. Thsi separation of concerns was achieved through the use of language-independent program analysis interfaces (in collaboration with researcgers at Rice University) and a language-independent XML representation of the computational portions of programs (XAIF). In addition to improved robustness and faster development times, this design naturally enables the reuse of program analysis algorithms and differentiation modules in compiler-based AD tools for other languages. In fact, the analysis and differention components are used in both ADIC and the Open AD Fortran front-end (based on Rice's Open64 compiler.
- Short Name / Acronym:
- ADIC; 002409MLTPL00
- Site Accession Number:
- SF-05-127
- Version:
- 00
- Programming Language(s):
- Medium: X; OS: Linux, any version, most other Unix environments
- Research Organization:
- Argonne National Laboratory (ANL), Argonne, IL (United States)
- Sponsoring Organization:
- USDOE/Office of Mathematical, Information and Computational Sciences
- DOE Contract Number:
- DE-AC02-06CH11357
- OSTI ID:
- 1231213
- Country of Origin:
- United States
Similar Records
ADIC : an extensible automatic differentiation tool for ANSI-C.
PARSER: a tool for command interpretation
Users' Guide to ADIC 1.1.
Journal Article
·
Sun Nov 30 23:00:00 EST 1997
· Software-Pract. Exper.
·
OSTI ID:937989
PARSER: a tool for command interpretation
Technical Report
·
Sat Oct 31 23:00:00 EST 1981
·
OSTI ID:5712359
Users' Guide to ADIC 1.1.
Technical Report
·
Tue Aug 31 00:00:00 EDT 2004
·
OSTI ID:834712