Enhancing the Software Ecosystem for Automatic Differentiation
Speaker: Christian Bischof (external, University of Darmstadt)
Date: Thursday, 3 December 2015, 13:30-15:00
Session: Double Feature: Automatic Differentiation
Talk type: Keynote talk (45 min)
Abstract: Automatic Differentiation (AD) of C/C++ codes typically involves a combination of source transformation and operator overloading (OO). However, in our experience with the use of AD tools, we found that many C++ codes are not fit for operator overloading. In addition, in order to exploit the associativity of the chain rule of differential calculus to reduce the computational cost of AD, information about the characteristics of the program are essential that cannot be obtained through static analysis. To address these issues, we developed a tool called OO-Lint to automatically flag and rewrite C++ codes so that thereafter OO for floating point types can be applied. To obtain information about programs to be subjected to AD, we developed INSTRO, an instrumentation infrastructure that allows the flexible exploration of C++ codes, as a first step towards AD tools that then can automatically detect and employ that information in the automated generation of AD code. This is joint work with Alexander Hück and Christian Iwainsky.