Skip to main content
QUICK REVIEW

[论文解读] Building the Tangent and Adjoint codes of the Ocean General Circulation Model OPA with the Automatic Differentiation tool TAPENADE

Moulay Hicham Tber, Laurent Hascoët|ArXiv.org|Nov 28, 2007
Reservoir Engineering and Simulation Methods被引用 10
一句话总结

本文利用 TAPENADE 自动微分工具,实现了对 OPA 海洋通用环流模型的切线与伴随模型的自动生成。通过应用反向模式自动微分及 Griewank-Walther 二项式检查点算法,作者在合理计算成本下实现了高精度的导数,经双实验和差分法验证,与手工编码相比显著缩短了开发时间。

ABSTRACT

The ocean general circulation model OPA is developed by the LODYC team at Paris VI university. OPA has recently undergone a major rewriting, migrating to FORTRAN95, and its adjoint code needs to be rebuilt. For earlier versions, the adjoint of OPA was written by hand at a high development cost. We use the Automatic Differentiation tool TAPENADE to build mechanicaly the tangent and adjoint codes of OPA. We validate the differentiated codes by comparison with divided differences, and also with an identical twin experiment. We apply state-of-the-art methods to improve the performance of the adjoint code. In particular we implement the Griewank and Walther's binomial checkpointing algorithm which gives us an optimal trade-off between time and memory consumption. We apply a specific strategy to differentiate the iterative linear solver that comes from the implicit time stepping scheme

研究动机与目标

  • 自动化生成 OPA 海洋模型的切线与伴随代码,此前此类工作需数月的手动实现。
  • 降低在大规模海洋模型中手工编写伴随模型所带来的时间成本与出错风险。
  • 通过数值比较与双实验,验证自动生成导数的准确性和性能。
  • 利用先进的检查点策略(如二项式方法)优化伴随代码的效率。
  • 展示 TAPENADE 在海洋学中大规模 FORTRAN95 科学代码上的可行性与可扩展性。

提出的方法

  • 对用 FORTRAN95 编写的 OPA 9 模型应用 TAPENADE 的反向模式自动微分。
  • 采用 Griewank 与 Walther 的二项式检查点算法,以最小化伴随计算中的内存与时间开销。
  • 针对隐式时间推进格式中使用的迭代线性求解器,适配特定的微分策略。
  • 通过与差分法比较及使用合成观测的双实验,验证导数的正确性。
  • 将微分后的代码集成到基于梯度的变分数据同化框架中,采用梯度优化循环。
  • 通过性能分析识别并优化非必要的检查点调用,提升伴随代码性能。

实验结果

研究问题

  • RQ1像 TAPENADE 这类自动微分工具能否有效生成大规模海洋通用环流模型的高精度切线与伴随模型?
  • RQ2在内存占用与执行时间方面,自动生成的伴随代码与手工编码版本相比表现如何?
  • RQ3在海洋模型长时间模拟中,何种检查点策略能最优平衡内存消耗与计算成本?
  • RQ4如何利用自动微分有效对隐式时间推进格式中的迭代求解器进行微分?
  • RQ5在使用预处理器指令与现代语言特性的情况下,自动微分在复杂科学代码中的适用范围有多大?

主要发现

  • 自动生成的伴随代码实现了高精度,其导数经差分法与双实验验证。
  • 在双实验中,代价函数降低了两个数量级,表明成功收敛至真实初始状态。
  • 二项式检查点策略在内存消耗与计算时间之间实现了最优权衡,优于多级方法。
  • 在 1000 个时间步长内,伴随代码的运行速度仅比正向模型慢 7 倍,这对海洋模拟而言属于极佳表现。
  • 与以往需数月手工实现相比,使用 TAPENADE 显著缩短了开发时间。
  • 在双实验中,微分代码成功从含噪声的初始扰动中恢复出真实的海表温度,证实了导数质量。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。