Devito: High-Performance Imaging and Inversion Codes from Symbolic Computation and Python in Seconds
, Imperial College London
Devito is a domain-specific language (DSL) and code generation framework for designing highly optimized finite difference kernels for use in inversion methods. Devito utilizes SymPy to allow the definition of operators from high-level symbolic equations and generates optimized and automatically tuned code specific to a given target architecture including ARM, GPUs, Power series, x86, and Xeon Phi. Devito is currently used in industry for petascale seismic imaging. Applications in other areas, such as medical imaging and scalable machine learning, are under development. Symbolic computation is a powerful tool that allows users to: * Build complex solvers from only a few lines of a Python DSL, * Use advanced code optimization methods to generate parallel high-performance code, and * (Re)develop production-ready software in hours rather than months.