Skip to main content
QUICK REVIEW

[论文解读] Scaling through abstractions -- high-performance vectorial wave simulations for seismic inversion with Devito

Mathias Louboutin, Fabio Luporini|arXiv (Cornell University)|Apr 22, 2020
Seismic Imaging and Inversion Techniques参考文献 47被引用 4
一句话总结

该论文提出 Devito,一种领域特定语言和编译器,通过从符号型偏微分方程表达式自动生成优化的有限差分 stencils,实现了高性能、可扩展的矢量波模拟,适用于地震反演。在云 HPC 环境中的工业级 3D 模型上,其性能达到 28 TFLOP/s,性能与手写内核相当,同时通过高层抽象支持复杂物理模型,如弹性波和 TTI 波方程。

ABSTRACT

[Devito] is an open-source Python project based on domain-specific language and compiler technology. Driven by the requirements of rapid HPC applications development in exploration seismology, the language and compiler have evolved significantly since inception. Sophisticated boundary conditions, tensor contractions, sparse operations and features such as staggered grids and sub-domains are all supported; operators of essentially arbitrary complexity can be generated. To accommodate this flexibility whilst ensuring performance, data dependency analysis is utilized to schedule loops and detect computational-properties such as parallelism. In this article, the generation and simulation of MPI-parallel propagators (along with their adjoints) for the pseudo-acoustic wave-equation in tilted transverse isotropic media and the elastic wave-equation are presented. Simulations are carried out on industry scale synthetic models in a HPC Cloud system and reach a performance of 28TFLOP/s, hence demonstrating Devito's suitability for production-grade seismic inversion problems.

研究动机与目标

  • 通过自动代码生成,实现高性能、可扩展的地震反演波模拟。
  • 在高层符号接口中支持复杂波物理模型,如弹性波和倾斜横观各向同性(TTI)介质。
  • 在保持跨本地和云 HPC 系统可移植性的同时,实现与手写优化内核相当的性能。
  • 展示使用 Devito 的符号 DSL 和编译器栈,实现大规模、基于 MPI 并行、伴随法反演工作流的可行性。

提出的方法

  • Devito 使用基于 SymPy 的符号领域特定语言(DSL),以数学上一致的方式表达偏微分方程(PDE),包括波方程和张量缩并。
  • Devito 编译器通过数据依赖分析来调度循环并检测并行性,运行时生成高度优化的 C 代码。
  • 该系统支持交错网格有限差分法,用于矢量场和张量场,可精确模拟弹性波和 TTI 波方程。
  • 原生支持基于域分解和 MPI 的分布式内存并行,可扩展至大型 3D 模型。
  • 通过稀疏操作,框架集成自动源注入和接收器采样,这对全波形反演至关重要。
  • 性能通过屋顶模型分析和与最先进的手写内核(fdelmodc)直接比较进行验证,确保底层效率。

实验结果

研究问题

  • RQ1高层符号 DSL 是否能够实现与手写优化、生产级波传播器在地震反演中相当的性能?
  • RQ2从符号型 PDE 自动生成代码,在多大程度上能够支持复杂波物理模型,如弹性波和 TTI 各向异性?
  • RQ3Devito 在大规模分布式内存 HPC 系统上,对大型 3D 地震建模和反演的可扩展性如何?
  • RQ4符号抽象与高性能编译的结合,是否能够实现在基于云的 HPC 环境中生产级的全波形反演工作流?

主要发现

  • Devito 在云 HPC 环境中对 3D 弹性波模拟实现了 28 TFLOP/s 的峰值性能,证明其已具备生产级地震反演的准备就绪性。
  • Devito 生成的内核性能与最先进的手写传播器(fdelmodc)相差不足 1%,证实其底层效率。
  • 尽管在 2D 情况下未完全利用所有编译器优化,Devito 弹性内核的单节点性能仍与手写实现相当。
  • 该系统成功扩展至 32 个节点(每节点 16 核 Intel Xeon),完成 16 秒的 3D 弹性模型模拟,性能达 1.1 TFLOP/s。
  • 该框架通过与标量场相同的高层 API,实现了对矢量场和张量场交错网格有限差分的完整支持。
  • 基于结果外推,计算一个 5000 源的弹性数据集将需要 322 EFLOPs,凸显计算需求之大,也凸显了像 Devito 这类可扩展、自动化的解决方案的必要性。

更好的研究,从现在开始

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

无需绑定信用卡

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