- 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.