Search NASA⌕ Search

DOE OSTI · 1477730

Parallelizable adjoint stencil computations using transposed forward-mode algorithmic differentiation

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.

Explore related subjects

Keep this discovery

Explore connections, maps & timelines

BibTeXRIS

Hückelheim, J. C., Hovland, P. D., Strout, M. M., Müller, J. -D.. 2018-05-18. Parallelizable adjoint stencil computations using transposed forward-mode algorithmic differentiation. https://doi.org/10.1080/10556788.2018.1435654

Cite the original work for its findings. Save a collection to share your selection of sources.

KEEP EXPLORING

Related reports

Handling Iterative Solvers in an Algorithmic Differentiation Framework Using Implicit Methods

Differentiable programming is a powerful concept as it enables the seemly propagation of gradients through functions, algorithms, and/or whole physics simulations. These gradients are useful for a wide variety of applications, including sensitivity studies and machine learning, but one of particular interest is optimization. Gradient-based optimization, enabled through automatic/algorithmic differentiation (AD), can be used on predictive physical models to efficiently optimize a set of design variables. AD methods are a particularly promising approach to complex physics simulations because they can be shown to scale well with an increasing number of design variables; however, care must be taken when coupling between different models or different states of a single model.

algorithmic differentiation↗