AuthorsN. Kukreja, J. Huckelheim, M. Lange, M. Louboutin, A. Walther, S. W. Funke and G. Gorman
TitleHigh-level abstractions for optimal checkpointing in inversion problems
AfilliationScientific Computing
Project(s)OptCutCell: Simulation-based optimisation with dynamic domains
Publication TypeTalks, contributed
Year of Publication2018
Location of TalkBordeaux
Place PublishedBordeaux
Type of TalkOral

Inversion and PDE-constrained optimization problems often rely
on solving the adjoint problem to calculate the gradient of the objective
function. This requires storing large amounts of intermediate
data, setting a limit to the largest problem that might be solved with
a given amount of memory available. Checkpointing is an approach
that can reduce the amount of memory required by redoing parts
of the computation instead of storing intermediate results. The
Revolve checkpointing algorithm offers an optimal schedule that
trades computational cost for smaller memory footprints. By varying the 
number of checkpoints to be stored in memory, the memory footprint of 
the resulting algorithm can be adjusted to fit within a large range of target 
machines. Integrating Revolve into a modern python HPC code and 
combining it with code generation is not straightforward. We present an
API that makes checkpointing accessible from a DSL-based code generation
environment along with some initial performance figures with a
focus on seismic-imaging applications.

Citation Key25873