3rd European Workshop on Automatic Differentiation
http://www.amorg.co.uk/AD/EuroADWorkshops/OxfordJune06
Thursday June 1st, 2006
Oxford
University Computing Laboratory
Wolfson Building
Parks Road
Oxford
UK
Michael
Maier
(RWTH),
Bruce Christianson (UH), Dmitrij Gendler (RWTH), Uwe
Naumann (RWTH)
Intraprocedural
Adjoint Code by the NAGWare Fortran Compiler and Prospects for Second
Derivatives
Abstract: We
report on further progress made in the development of the
differentiation-enabled NAGWare Fortran compiler. The compiler is now capable
of generating intraprocedural adjoint code for a relevant subset of Fortran 90.
The transformation is achieved by modification of the parse tree. It uses the
compilers back-end (unparser to C) to produce adjoint code in C. We discuss the
overall approach, some technical details, and we present numerical and runtime
results.
A parallel effort aims to generate tangent-linear versions of Intel 80386/387
assembly code. We understand assembler as a (high-level)
programming-language-independent intermediate format. Thus, we can generate
tangent-linear code for programs written in various programming languages. More
specifically we use the GNU Compiler Collection (GCC) to generate assembler for
programs written in either C or Fortran (potentially other languages that the
GCC provides front-ends for). Our source transformation tool ADAC (Automatic
Differentiation of Assembler Code) performs the transformation into
tangent-linear assembler (potentially C) code. We show numerical results for
problems from the MINPACK 2 test problem collection.
So far the differentiation-enabled NAGWare Fortran compiler and ADAC are
separate. The idea is to combine both tools to compute second derivatives by
forward over reverse mode. This project has been proposed to EPSRC. The
proposal is currently under review.
Slides: MaierJune06.pdf