Discrete adjoints on many cores Algorithmic differentiation of accelerated fluid simulations
Publisher
Metadata
Show full item recordAbstract
Simulations are used in science and industry to predict the performance of technical
systems. Adjoint derivatives of these simulations can reveal the sensitivity of the system
performance to changes in design or operating conditions, and are increasingly used in
shape optimisation and uncertainty quantification. Algorithmic differentiation (AD) by
source-transformation is an efficient method to compute such derivatives.
AD requires an analysis of the computation and its data flow to produce efficient
adjoint code. One important step is the activity analysis that detects operations that
need to be differentiated. An improved activity analysis is investigated in this thesis
that simplifies build procedures for certain adjoint programs, and is demonstrated to
improve the speed of an adjoint fluid dynamics solver. The method works by allowing a
context-dependent analysis of routines.
The ongoing trend towards multi- and many-core architectures such as the Intel
XeonPhi is creating challenges for AD. Two novel approaches are presented that replicate
the parallelisation of a program in its corresponding adjoint program. The first approach
detects loops that naturally result in a parallelisable adjoint loop, while the second
approach uses loop transformation and the aforementioned context-dependent analysis
to enforce parallelisable data access in the adjoint loop. A case study shows that both
approaches yield adjoints that are as scalable as their underlying primal programs.
Adjoint computations are limited by their memory footprint, particularly in unsteady
simulations, for which this work presents incomplete checkpointing as a method to
reduce memory usage at the cost of a slight reduction in accuracy.
Finally, convergence of iterative linear solvers is discussed, which is especially relevant
on accelerator cards, where single precision floating point numbers are frequently
used and the choice of solvers is limited by the small memory size. Some problems that
are particular to adjoint computations are discussed.
Authors
Hückelheim, Jan ChristianCollections
- Theses [4125]