Profiling checkpointing schedules in adjoint ST-AD
Laurent Hasco\"et, Jean-Luc Bouchot, Shreyas Sunil Gaikwad, Sri Hari, Krishna Narayanan, Jan H\"uckelheim

TL;DR
This paper introduces a heuristic profiling method to optimize checkpoint placement in adjoint algorithmic differentiation, aiming to balance runtime and memory use, demonstrated on climate modeling applications.
Contribution
It presents a new heuristic approach based on runtime profiling for checkpoint placement in adjoint AD, implemented within an existing source-transformation tool.
Findings
Effective checkpointing heuristics reduce memory footprint.
Profiling-based approach improves run time in test cases.
Demonstrated on climate modeling applications.
Abstract
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.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed and Parallel Computing Systems · Scientific Computing and Data Management · Advanced Data Storage Technologies
