Devito (v3.1.0): an embedded domain-specific language for finite differences and geophysical exploration
arXiv:1808.01995 · doi:10.5194/gmd-12-1165-2019
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.
References in corpus (10)
- Firedrake: automating the finite element method by composing abstractions
- Automated derivation of the adjoint of high-level transient finite element programs
- A penalty method for PDE-constrained optimization in inverse problems
- OpenSBLI: A framework for the automated derivation and parallel execution of finite difference solvers on a range of computer architectures
- COFFEE: an Optimizing Compiler for Finite Element Local Assembly
- Simflowny 2: An upgraded platform for scientific modeling and simulation
- Simflowny 3: An upgraded platform for scientific modelling and simulation
- Performance prediction of finite-difference solvers for different computer architectures
- High-level python abstractions for optimal checkpointing in inversion problems
- Architecture and performance of Devito, a system for automated stencil computation
Cited by in corpus (33)
- Benchmark problems for transcranial ultrasound simulation: Intercomparison of compressional wave models
- A General Approach to Seismic Inversion with Automatic Differentiation
- Model-Parallel Fourier Neural Operators as Learned Surrogates for Large-Scale Parametric PDEs
- OpenSBLI: Automated code-generation for heterogeneous computing architectures applied to compressible fluid dynamics on structured grids
- Stride: a flexible platform for high-performance ultrasound computed tomography
- Simflowny 3: An upgraded platform for scientific modelling and simulation
- WISE: full-Waveform variational Inference via Subsurface Extensions
- PDE-NetGen 1.0: from symbolic PDE representations of physical processes to trainable neural network representations
- Learned coupled inversion for carbon sequestration monitoring and forecasting with Fourier neural operators
- Solving multiphysics-based inverse problems with learned surrogates and constraints
- Learned multiphysics inversion with differentiable programming and machine learning
- Acoustic Full Waveform Inversion with Hamiltonian Monte Carlo Method
- De-risking geological carbon storage from high resolution time-lapse seismic to explainable leakage detection
- Coordinate-Based Seismic Interpolation in Irregular Land Survey: A Deep Internal Learning Approach
- A shared compilation stack for distributed-memory parallelism in stencil DSLs
- An uncertainty-aware Digital Shadow for underground multimodal CO2 storage monitoring
- Minimod: A Finite Difference solver for Seismic Modeling
- Neural network augmented wave-equation simulation
- Accelerating innovation with software abstractions for scalable computational geophysics
- Compressive time-lapse seismic monitoring of carbon storage and sequestration with the joint recovery model
- Time-lapse full-waveform permeability inversion: a feasibility study
- Serverless seismic imaging in the cloud
- Time-domain Wavefield Reconstruction Inversion in a TTI medium
- Scaling through abstractions -- high-performance vectorial wave simulations for seismic inversion with Devito
- Optimized time-lapse acquisition design via spectral gap ratio minimization
- Accelerating High-Order Stencils on GPUs
- Combining Checkpointing and Data Compression to Accelerate Adjoint-Based Optimization Problems
- Time-domain sparsity promoting least-squares reverse time migration with source estimation
- Full waveform inversion using triangular waveform adapted meshes
- On Godunov-type finite volume methods for seismic wave propagation
- Extended source imaging, a unifying framework for seismic & medical imaging
- GPU Support for Automatic Generation of Finite-Differences Stencil Kernels
- Investigating the OPS intermediate representation to target GPUs in the Devito DSL