Automatic differentiation

Overview

Applications such as medical imaging and car design call for accurate and efficient computational science tools. Our researchers are leading the development of the world’s first industrial-strength Fortran compiler with built-in support for adjoint mode Automatic Differentiation. This has exciting potential for cost-effective modelling and optimisation solutions.

Automatic Differentiation (AD) is a method of transforming scientific modelling programs so as to calculate sensitivities, such as gradients, efficiently and to machine precision. The University has long been recognised as an international leader in this field. Our research during the 1990s contributed significantly to advancing the theory underpinning the technology. The inspiration for placing AD functionality inside a compiler also came from our Centre for Computer Science and Informatics Research (CCSIR).

For over ten years we have played a major part in building the first complete Automatic Differentiation Enabled Fortran Compiler. The CompAD project, funded by the Engineering and Physical Sciences Research Council (EPSRC), is a joint venture of the University of Hertfordshire with Professor Uwe Naumann’s group at RWTH-Aachen (the German Centre of Excellence for Computational Engineering), and the Oxford-based Numerical Algorithms Group (NAG). Professor Naumann is also a visiting research fellow at our CCSIR.

AD applications include financial modelling and inverse problems such as medical imaging and geosciences. To ensure CompAD’s suitability for different domains, we are guiding and proving the technology with input from partners such as BAE Systems, the Met Office, and the global defence and security experts, QinetiQ.

Proof of its efficiency and commercial potential is highlighted in an application for the German Waterways Board to improve dredging along the River Danube. CompAD was used to predict the flow and profile of sediment. Instead of calculating just a single value at one point in time and space, it allowed a probability distribution of the evolution to be automatically derived, and a reliability analysis then ranked uncertainty input parameters.

The CompAD project set out to solve certain complex problems and lay the groundwork for making progress with others. With this aim the project team has published the theory and the development work funded by the EPSRC. We have also shared project output with the research community, including details of the sediment flow application. Now the University is exploring with NAG how to make available the compiler functionality to benefit commercial customers.