Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
97 tokens/sec
GPT-4o
53 tokens/sec
Gemini 2.5 Pro Pro
43 tokens/sec
o3 Pro
4 tokens/sec
GPT-4.1 Pro
47 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Devito (v3.1.0): an embedded domain-specific language for finite differences and geophysical exploration (1808.01995v2)

Published 6 Aug 2018 in cs.DM and physics.geo-ph

Abstract: We introduce Devito, a new domain-specific language for implementing high-performance finite difference partial differential equation solvers. The motivating application is exploration seismology where methods such as Full-Waveform Inversion and Reverse-Time Migration are used to invert terabytes of seismic data to create images of the earth's subsurface. Even using modern supercomputers, it can take weeks to process a single seismic survey and create a useful subsurface image. The computational cost is dominated by the numerical solution of wave equations and their corresponding adjoints. Therefore, a great deal of effort is invested in aggressively optimizing the performance of these wave-equation propagators for different computer architectures. Additionally, the actual set of partial differential equations being solved and their numerical discretization is under constant innovation as increasingly realistic representations of the physics are developed, further ratcheting up the cost of practical solvers. By embedding a domain-specific language within Python and making heavy use of SymPy, a symbolic mathematics library, we make it possible to develop finite difference simulators quickly using a syntax that strongly resembles the mathematics. The Devito compiler reads this code and applies a wide range of analysis to generate highly optimized and parallel code. This approach can reduce the development time of a verified and optimized solver from months to days.

User Edit Pencil Streamline Icon: https://streamlinehq.com
Authors (8)
  1. Mathias Louboutin (42 papers)
  2. Michael Lange (22 papers)
  3. Fabio Luporini (21 papers)
  4. Navjot Kukreja (13 papers)
  5. Philipp A. Witte (11 papers)
  6. Felix J. Herrmann (67 papers)
  7. Paulius Velesko (2 papers)
  8. Gerard J. Gorman (19 papers)
Citations (161)

Summary

  • The paper introduces Devito, an embedded domain-specific language (DSL) that simplifies and accelerates the development of high-performance finite difference solvers for geophysical exploration.
  • Devito automates optimized parallel code generation from high-level notation using SymPy and compiler optimizations, drastically reducing development time.
  • Numerical results show accurate discretization and validated adjoint methods, enabling faster prototyping of new geophysical algorithms and improved focus on physical models.

Devito: An Embedded Domain-Specific Language for Geophysical Exploration

Devito represents a significant advancement in the implementation and optimization of finite difference solvers for partial differential equations (PDEs), particularly within geophysical exploration. This embedded domain-specific language (DSL) integrates seamlessly with Python and leverages the symbolic computation capabilities of SymPy to facilitate rapid development of high-performance finite difference simulators.

Technical Overview

Devito targets large-scale inversion problems in exploration seismology, where computational efficiency in solving complex wave equations is paramount. Traditional approaches in this field often demand significant time and expertise due to the need for manually optimizing PDE solvers for specific hardware architectures. Devito addresses these concerns by automating the generation of optimized parallel code directly from a high-level mathematical notation, significantly reducing development times from months to days.

One of the core strengths of Devito is its ability to handle explicit finite difference schemes, which are prevalent in seismic imaging due to their simplicity of implementation. Devito employs an abstract syntax tree and a series of compiler optimizations, including Common Sub-expression Elimination (CSE) and loop-invariant code motion, to produce computationally efficient implementations. In addition, Devito supports symbolic formulation and manipulation tasks required for finite differences, enhancing productivity in scientific workflows.

Numerical Results and Verification

The numerical results presented in the paper highlight Devito's capacity for precise discretization and efficient computation. The convergence tests demonstrated that both spatial and temporal errors align with theoretical expectations, an essential requirement for ensuring the fidelity of seismic modeling and inversion techniques. The paper reports minimal relative errors in adjoint tests, validating the implementation of the adjoint state method critical for Full-Waveform Inversion (FWI).

Implications and Future Directions

Devito's approach sets a framework for rapid prototyping and testing new algorithms in geophysical exploration, thereby fostering scientific innovation and exploration of different PDE representations without the typical computational constraints. By enabling optimized solver implementations, researchers can focus on improving physical models and inversion techniques.

Looking forward, Devito's integration with YASK promises enhanced performance on specific hardware, advancing its applicability and efficiency in large-scale computational environments. Future versions aim to support additional PDE types, including those requiring staggered grid setups, enhancing its versatility in computational fluid dynamics and other scientific fields.

In essence, Devito exemplifies how a domain-specific language can substantially streamline the development process of PDE solvers while maintaining high computational performance and flexibility, pivotal to advancing capabilities in geophysical exploration and beyond.