Date
Thu, 15 Jun 2017
Time
14:00 - 15:00
Location
Rutherford Appleton Laboratory, nr Didcot
Speaker
Dr Jan Hückelheim
Organisation
(Imperial College, London)


Adjoint derivatives reveal the sensitivity of a computer program's output to changes in its inputs. These derivatives are useful as a building block for optimisation, uncertainty quantification, noise estimation, inverse design, etc., in many industrial and scientific applications that use PDE solvers or other codes.
Algorithmic differentiation (AD) is an established method to transform a given computation into its corresponding adjoint computation. One of the key challenges in this process is the efficiency of the resulting adjoint computation. This becomes especially pressing with the increasing use of shared-memory parallelism on multi- and many-core architectures, for which AD support is currently insufficient.
In this talk, I will present an overview of challenges and solutions for the differentiation of shared-memory-parallel code, using two examples: an unstructured-mesh CFD solver, and a structured-mesh stencil kernel, both parallelised with OpenMP. I will show how AD can be used to generate adjoint solvers that scale as well as their underlying original solvers on CPUs and a KNC XeonPhi. The talk will conclude with some recent efforts in using AD and formal verification tools to check the correctness of manually optimised adjoint solvers.
 

Please contact us with feedback and comments about this page. Last updated on 04 Apr 2022 14:57.