Devito: Fast and Scalable Full-Waveform Inversion Without the Excruciating Pain
G. Gorman, F. Luporini, N. Kukreja, M. Louboutin, A. St-Cyr, B. Souza and F. Herrmann
Event name: First EAGE Workshop on High Performance Computing for Upstream in Latin America
Session: High Performance Computing
Publication date: 21 September 2018
Info: Abstract, PDF ( 90.7Kb )
Price: € 20
We describe Devito, an open-source embedded domainspecific language (DSL) in Python for developing parallel and highly optimized finite difference solvers - primarily targeting seismic imaging applications such as reverse-time migration (RTM) and full-waveform inversion (FWI). The two key novel aspects of this technology that distinguish it from existing frameworks is the use of a symbolic mathematics engine, SymPy, to enable geophysicists to quickly and easily implement new methods that are easily verifiable, and the use of compiler techniques to transform the high-level implementation into highly optimized and parallel C code on the fly. A key benefit of taking this embedded DSL compiler technology approach is that it also provides a robust strategy for application code performance portability. We demonstrate the generation and automated execution of highly optimized stencil code for standard operators such as forward, adjoint and gradient operators from only a few lines of Python and SymPy. We also demonstrate how Devito can be integrated with Dask to implement highly scalable RTM on Cloud and Supercomputing platforms.