Compiler-Based Program Transformations
1. Compiler-Based Automatic Differentiation
Automatic differentiation (AD) is a process for computing derivatives
of functions implemented as computer programs (see the Automatic Differentiation pages for
general information on AD). My AD research focuses on compiler-based
tools for the automatic differentiation of C and C++ code, and on
language-independent intermediate program representation. The principal
components in the design of ADIC 2.0 include
- Sage 3 (ROSE) AST using an EDG-based C/C++ parser
- Program analysis using OpenAnalysis
- XAIF generation
- Use of XAIF differentiation modules for forward mode
differentiation, such as those provided by XAIFBooster
- XAIF parser and C/C++ code generator
- Sri Hari Krishna Narayanan, Boyana Norris, Paul Hovland, Duc C. Nguyen, and
Assefaw H. Gebremedhin.
Sparse jacobian computation using ADIC2 and ColPack.
Procedia Computer Science, 4:2115 - 2123, 2011.
Proceedings of the International Conference on Computational Science,
[ bib |
Sri Hari Krishna Narayanan, Boyana Norris, and Paul D. Hovland.
Generating performance bounds from source code.
In Proceedings of the First International Workshop on Parallel
Software Tools and Tool Infrastructures (PSTI 2010), 9 2010.
Also available as Preprint ANL/MCS-P1685-1009.
[ bib |
- B. Norris and P. Hovland. A distributed application server
for automatic differentiation.
INFORMATION, 6(3):305-314, July 2003.
- P. D. Hovland, U. Naumann, and B. Norris, An XML-based
platform for semantic transformation of Numerical Programs. In Proceedings of Software Engineering and
Applications, November 4-6, 2002 Cambridge, MA, ACTA Press,
Anaheim, CA, pp. 530-538.
- P. D. Hovland, U. Naumann, and B. Norris. "An XML-Based
for Semantic Transformation of Numerical Programs,"in Proceedings
Software Engineering and Applications, November 4-6, 2002
MA, ACTA Press, Anaheim, CA, pp. 530--538. Also available as MCS
to Boyana Norris's Home Page