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