PLLGMSNov 10, 2016

Binomial Checkpointing for Arbitrary Programs with No User Annotation

arXiv:1611.03410v12 citations
Originality Incremental advance
AI Analysis

This enables more efficient reverse-mode automatic differentiation for a broad range of applications, though it is incremental as it builds on existing checkpointing methods.

The paper tackles the problem of applying binomial checkpointing to arbitrary programs without requiring user annotations or refactoring, achieving this by using a general-purpose checkpointing mechanism on program traces.

Heretofore, automatic checkpointing at procedure-call boundaries, to reduce the space complexity of reverse mode, has been provided by systems like Tapenade. However, binomial checkpointing, or treeverse, has only been provided in Automatic Differentiation (AD) systems in special cases, e.g., through user-provided pragmas on DO loops in Tapenade, or as the nested taping mechanism in adol-c for time integration processes, which requires that user code be refactored. We present a framework for applying binomial checkpointing to arbitrary code with no special annotation or refactoring required. This is accomplished by applying binomial checkpointing directly to a program trace. This trace is produced by a general-purpose checkpointing mechanism that is orthogonal to AD.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes