ADIC : an extensible automatic differentiation tool for ANSI-C.
In scientific computing, we often require the derivatives df/dx of a function f expressed as a program with respect to some input parameter(s) x, say. Automatic Differentiation (AD) techniques augment the program with derivative computation by applying the chain rule of calculus to elementary operations in an automated fashion. This article introduces ADIC (Automatic Differentiation of C), a new AD tool for ANSI-C programs. ADIC is currently the only tool for ANSI-C that employs a source-to-source program transformation approach; that is, it takes a C code and produces a new C code that computes the original results as well as the derivatives. We first present ADIC by example to illustrate the functionality and ease of use of ADIC and then describe in detail the architecture of ADIC. ADIC incorporates a modular design that provides a foundation for both rapid prototyping of better AD algorithms and their sharing across AD tools for different languages. A component architecture called AIF (Automatic Differentiation Intermediate Form) separates core AD concepts from their language-specific implementation and allows the development of generic AD modules that can be reused directly in other AIF-based AD tools. The language-specific ADIC front-end and back-end canonicalize C programs to make them fit for semantic augmentation and manage, for example, the association of a program variable with its derivative object. We also report on applications of ADIC to a semiconductor device simulator, 3-D CFD grid generator, vehicle simulator, and neural network code.
- Research Organization:
- Argonne National Lab. (ANL), Argonne, IL (United States)
- Sponsoring Organization:
- ER
- DOE Contract Number:
- DE-AC02-06CH11357
- OSTI ID:
- 937989
- Report Number(s):
- ANL/MCS-P626-1196; SPEXBL; TRN: US200906%%348
- Journal Information:
- Software-Pract. Exper., Vol. 27, Issue 12 ; Dec. 1997; ISSN 0038-0644
- Country of Publication:
- United States
- Language:
- ENGLISH
Similar Records
Users' Guide to ADIC 1.1.
Experiences with the application of the ADIC automatic differentiation tool for to the CSCMDO 3-D volume grid generation code