|
|
Parallelizable adjoint stencil computations using transposed forward-mode algorithmic differentiation-
Article in a journal
- | |
|
Area Computational Fluid Dynamics |
Author(s)
Jan C. Hückelheim
, Paul D. Hovland
, Michelle M. Strout
, Jens-Dominik Müller
|
Published in Special issue of Optimization Methods & Software: Advances in Algorithmic Differentiation
Optimization Methods & Software |
Editor(s) Bruce Christianson, Shaun A. Forth, Andreas Griewank |
Year 2018 |
Publisher Taylor & Francis |
Abstract Algorithmic differentiation (ad) is a tool for generating discrete adjoint solvers, which efficiently compute gradients of functions with many inputs, for example for use in gradient-based optimization. ad is often applied to large computations such as stencil operators, which are an important part of most structured-mesh PDE solvers. Stencil computations are often parallelized, for example by using OpenMP, and optimized by using techniques such as cache-blocking and tiling to fully utilize multicore CPUs and many-core accelerators and GPUs. Differentiating these codes with conventional reverse-mode ad results in adjoint codes that cannot be expressed as stencil operations and may not be easily parallelizable. They thus leave most of the compute power of modern architectures unused. We present a method that combines forward-mode ad and loop transformation to generate adjoint solvers that use the same memory access pattern as the original computation that they are derived from and can benefit from the same optimization techniques. The effectiveness of this method is demonstrated by generating a scalable adjoint CFD solver for multicore CPUs and Xeon Phi accelerators. |
Cross-References Christianson2018Sio |
AD Tools TAPENADE |
AD Theory and Techniques Adjoint, Code Optimization, control-flow reversal, Data Flow Analysis, data-flow reversal, Implementation Strategies, Parallelism, Performance, Reverse Mode, Source transformation |
BibTeX
@ARTICLE{
Huckelheim2018Pas,
crossref = "Christianson2018Sio",
author = "Jan C. H{\"u}ckelheim and Paul D. Hovland and Michelle M. Strout and
Jens-Dominik M{\"u}ller",
title = "Parallelizable adjoint stencil computations using transposed forward-mode algorithmic
differentiation",
journal = "Optimization Methods \& Software",
volume = "33",
number = "4--6",
pages = "672--693",
year = "2018",
publisher = "Taylor \& Francis",
doi = "10.1080/10556788.2018.1435654",
url = "https://www.tandfonline.com/doi/abs/10.1080/10556788.2018.1435654",
eprint = "https://www.tandfonline.com/doi/pdf/10.1080/10556788.2018.1435654",
abstract = "Algorithmic differentiation (AD) is a tool for generating discrete adjoint solvers,
which efficiently compute gradients of functions with many inputs, for example for use in
gradient-based optimization. AD is often applied to large computations such as stencil operators,
which are an important part of most structured-mesh PDE solvers. Stencil computations are often
parallelized, for example by using OpenMP, and optimized by using techniques such as cache-blocking
and tiling to fully utilize multicore CPUs and many-core accelerators and GPUs. Differentiating
these codes with conventional reverse-mode AD results in adjoint codes that cannot be expressed as
stencil operations and may not be easily parallelizable. They thus leave most of the compute power
of modern architectures unused. We present a method that combines forward-mode AD and loop
transformation to generate adjoint solvers that use the same memory access pattern as the original
computation that they are derived from and can benefit from the same optimization techniques. The
effectiveness of this method is demonstrated by generating a scalable adjoint CFD solver for
multicore CPUs and Xeon Phi accelerators.",
booktitle = "Special issue of Optimization Methods \& Software: Advances in
Algorithmic Differentiation",
editor = "Bruce Christianson and Shaun A. Forth and Andreas Griewank",
ad_area = "Computational Fluid Dynamics",
ad_tools = "TAPENADE",
ad_theotech = "Adjoint, Code Optimization, control-flow reversal, Data Flow Analysis, data-flow
reversal, Implementation Strategies, Parallelism, Performance, Reverse Mode, Source
transformation"
}
| |
back
|
|