CLMay 24, 2024

Profiling checkpointing schedules in adjoint ST-AD

arXiv:2405.15590v21 citationsh-index: 13
Originality Incremental advance
AI Analysis

This work addresses a specific bottleneck in computational science for applications like climate modeling, but it is incremental as it builds on existing AD tools.

The paper tackles the problem of optimizing checkpoint placements in adjoint algorithmic differentiation to reduce runtime and memory usage, proposing a heuristic based on runtime profiling and demonstrating its effectiveness on test cases from the MITgcm model.

Checkpointing is a cornerstone of data-flow reversal in adjoint algorithmic differentiation. Checkpointing is a storage/recomputation trade-off that can be applied at different levels, one of which being the call tree. We are looking for good placements of checkpoints onto the call tree of a given application, to reduce run time and memory footprint of its adjoint. There is no known optimal solution to this problem other than a combinatorial search on all placements. We propose a heuristics based on run-time profiling of the adjoint code. We describe implementation of this profiling tool in an existing source-transformation AD tool. We demonstrate the interest of this approach on test cases taken from the MITgcm ocean and atmospheric global circulation model. We discuss the limitations of our approach and propose directions to lift them.

Foundations

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

Your Notes