当前位置: X-MOL 学术arXiv.cs.MS › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Optimal Checkpointing for Adjoint Multistage Time-Stepping Schemes
arXiv - CS - Mathematical Software Pub Date : 2021-06-25 , DOI: arxiv-2106.13879
Hong Zhang, Emil Constantinescu

We consider checkpointing strategies that minimize the number of recomputations needed when performing discrete adjoint computations using multistage time-stepping schemes, which requires computing several substeps within one complete time step. In this case we propose two algorithms that can generate optimal checkpointing schedules under weak assumptions. The first is an extension of the seminal Revolve algorithm adapted to multistage schemes. The second algorithm, named CAMS, is developed based on dynamic programming, and it requires the least number of recomputations when compared with other algorithms. The CAMS algorithm is made publicly available in a library with bindings to C and Python. Numerical results illustrate that the proposed algorithms can deliver up to two times the speedup compared with that of classical Revolve. Moreover, we discuss a tailored implementation of an adjoint computation that is arguably better suited for mature scientific computing libraries by avoiding the central control assumed by the original checkpointing strategy. The proposed algorithms have been adopted by the PETSc TSAdjoint library. Their performance has been demonstrated with a large-scale PDE-constrained optimization problem on a leadership-class supercomputer.

中文翻译:

伴随多级时间步进方案的最佳检查点

我们考虑使用多级时间步长方案执行离散伴随计算时所需的重新计算次数最小化的检查点策略,这需要在一个完整的时间步长内计算多个子步。在这种情况下,我们提出了两种算法,可以在弱假设下生成最佳检查点调度。第一个是适用于多级方案的开创性 Revolve 算法的扩展。第二种算法称为CAMS,是基于动态规划开发的,与其他算法相比,它需要最少的重新计算次数。CAMS 算法在绑定到 C 和 Python 的库中公开提供。数值结果表明,与经典 Revolve 相比,所提出的算法可以提供高达两倍的加速。而且,我们讨论了伴随计算的定制实现,通过避免原始检查点策略假设的中央控制,它可以说更适合成熟的科学计算库。所提出的算法已被 PETSc TSAdjoint 库采用。它们的性能已经在领导级超级计算机上通过大规模 PDE 约束优化问题得到了证明。
更新日期:2021-06-29
down
wechat
bug