|
Tools
ADIC
ADIFOR
Other tools
Applications
Reports
Argonne
By users
People
Paul Hovland
Uwe Naumann
Boyana Norris
Michelle Strout
Jean Utke
Autodiff.org
|
The Computational Differentiation Group at Argonne develops technologies for
generating, with minimal human effort, efficient derivative code for models
implemented as computer programs. These technologies include compiler-based
automatic differentiation tools, new differentiation strategies, and web-based
differentiation services. Our research is guided by our collaborations with
scientists from a variety of application domains.
News
The 4th International Conference on Automatic Differentiation will be held
July 19-23, 2004 in Chicago.
The 2nd Workshop on
Automatic Differentiation and Applications was held May 18-21,
2003 in Montreal, Canada as part of
ICCSA.
Research
- Mechanisms for improving the performance of derivative code, including
- parallel/threaded derivative computation,
- runtime dataflow analysis,
- exploitation of sparsity, and
- machine-tailored preaccumulation strategies.
- Strategies to exploit high-level knowledge. These so-called computational
differentiation strategies exploit the mathematics of scientific libraries
such as PETSc and the BLAS and structural features such as narrow interfaces at subroutine boundaries.
- Integration of AD with toolkits for scientific computing. ADIC is being integrated with the
PETSc, TAO, and
SUNDIALS toolkits.
- Scientific application servers. AD is used for derivative computations
in the Network Enabled Optimization System
(NEOS) server. The
ADIC server makes it possible to use AD without installing the software.
Tools
ADIC is the first and only compiler-based AD tool for ANSI C.
ADIFOR, developed in collaboration with Rice University, offers full support
for Fortran 77. Both tools offer:
- Support for parallelism. MPI codes can be differentiated (in our
next release). Sequential codes can be parallelized via stripmining of the derivative computations.
- Support for sparsity. SparsLinC library makes it possible to transparently
exploit sparsity arising from large sparse Jacobians or gradients of partially
separable functions. In addition, when the sparsity pattern is known,
coloring can be used to reduce the computational cost.
- A flexible intrinsic handler, providing various mechanisms for handling
exceptions such as the differentiation of sqrt(x) when x=0.
- A polyalgorithmic Hessian module, utilized by both ADIC and ADIFOR through a
common interface to plug-in differentiation modules. The Hessian module
tailors the derivative computation strategy to maximize performance for a
particular platform.
|