High-level python abstractions for optimal checkpointing in inversion problems

01/12/2018
by   Navjot Kukreja, et al.
0

Inversion and PDE-constrained optimization problems often rely on solving the adjoint problem to calculate the gradient of the objec- tive 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 o ers an optimal schedule that trades computational cost for smaller memory footprints. Integrat- ing 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 gures with a focus on seismic applications.

READ FULL TEXT
research
09/12/2016

Devito: Towards a generic Finite Difference DSL using Symbolic Python

Domain specific languages (DSL) have been used in a variety of fields to...
research
10/27/2020

Memory Optimization for Deep Networks

Deep learning is slowly, but steadily, hitting a memory bottleneck. Whil...
research
03/28/2022

Does Coding in Pythonic Zen Peak Performance? Preliminary Experiments of Nine Pythonic Idioms at Scale

In the field of data science, and for academics in general, the Python p...
research
10/09/2019

Implementing a smooth exact penalty function for equality-constrained nonlinear optimization

We develop a general equality-constrained nonlinear optimization algorit...
research
10/11/2018

Combining checkpointing and data compression for large scale seismic inversion

Seismic inversion and imaging are adjoint-based optimization problems th...
research
02/11/2021

Full waveform inversion using extended and simultaneous sources

PDE-constrained optimization problems are often treated using the reduce...
research
03/16/2021

Machine learning initialization to accelerate Stokes profile inversions

In this work, we discuss the application of convolutional neural network...

Please sign up or login with your details

Forgot password? Click here to reset