Saved in:
Bibliographic Details
Main Author: Maddison, James R.
Format: Preprint
Published: 2023
Subjects:
Online Access:https://arxiv.org/abs/2305.09568
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866913518694957056
author Maddison, James R.
author_facet Maddison, James R.
contents Automated code generation allows for a separation between the development of a model, expressed via a domain specific language, and lower level implementation details. Algorithmic differentiation can be applied symbolically at the level of the domain specific language, and the code generator reused to implement code required for an adjoint calculation. However the adjoint calculations are complicated by the well-known problem of storing or recomputing the forward data required by the adjoint, and different checkpointing strategies have been developed to tackle this problem. This article considers the combination of high-level algorithmic differentiation with step-based checkpointing schedules, with the primary application being for solvers of time-dependent partial differential equations. The focus is on algorithmic differentiation using a dynamically constructed record of forward operations, where the precise structure of the original forward calculation is unknown ahead-of-time. In addition, high-level approaches provide a simplified view of the model itself. This allows data required to restart and advance the forward, and data required to advance the adjoint, to be identified. The difference between the two types of data is here leveraged to implement checkpointing strategies with improved performance.
format Preprint
id arxiv_https___arxiv_org_abs_2305_09568
institution arXiv
publishDate 2023
record_format arxiv
spellingShingle Step-based checkpointing with high-level algorithmic differentiation
Maddison, James R.
Programming Languages
Numerical Analysis
Automated code generation allows for a separation between the development of a model, expressed via a domain specific language, and lower level implementation details. Algorithmic differentiation can be applied symbolically at the level of the domain specific language, and the code generator reused to implement code required for an adjoint calculation. However the adjoint calculations are complicated by the well-known problem of storing or recomputing the forward data required by the adjoint, and different checkpointing strategies have been developed to tackle this problem. This article considers the combination of high-level algorithmic differentiation with step-based checkpointing schedules, with the primary application being for solvers of time-dependent partial differential equations. The focus is on algorithmic differentiation using a dynamically constructed record of forward operations, where the precise structure of the original forward calculation is unknown ahead-of-time. In addition, high-level approaches provide a simplified view of the model itself. This allows data required to restart and advance the forward, and data required to advance the adjoint, to be identified. The difference between the two types of data is here leveraged to implement checkpointing strategies with improved performance.
title Step-based checkpointing with high-level algorithmic differentiation
topic Programming Languages
Numerical Analysis
url https://arxiv.org/abs/2305.09568