arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 1802.02474cs.MScs.CE
收藏

用于求逆问题中的最佳检查点的高级Python抽象

High-level python abstractions for optimal checkpointing in inversion problems

Navjot Kukreja, Jan Hückelheim, Michael Lange, Mathias Louboutin, Andrea Walther, Simon W. Funke, Gerard Gorman

摘要:

反演和偏微分方程约束优化问题往往依赖于求解伴随问题来计算目标函数的梯度。这需要存储大量的中间数据,从而限制了在给定的可用内存量下可能解决的最大问题。检查点是一种可以减少重做部分计算而不是存储中间结果所需的内存量的方法。Revolve检查点算法提供了一个最佳的调度方案,可以用更小的内存占用来换取计算成本。将Revolve集成到现代python HPC代码中并将其与代码生成结合起来并不简单。我们提出了一个API,使检查点访问基于DSL的代码生成环境,以及一些初始的性能测试,重点是地震应用程序。

英文摘要:

Inversion and PDE-constrained optimization problems often rely on solving the adjoint problem to calculate the gradient of the objec- tive function. This requires storing large amounts of intermediate data, setting a limit to the largest problem that might be solved with a given amount of memory available. Checkpointing is an approach that can reduce the amount of memory required by redoing parts of the computation instead of storing intermediate results. The Revolve checkpointing algorithm o ers an optimal schedule that trades computational cost for smaller memory footprints. Integrat- ing Revolve into a modern python HPC code and combining it with code generation is not straightforward. We present an API that makes checkpointing accessible from a DSL-based code generation environment along with some initial performance gures with a focus on seismic applications.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑