Rapid Development of Seismic Imaging Applications Using Symbolic Math
N. Kukreja, M. Louboutin, M. Lange, F. Luporini and G. Gorman
Event name: Third EAGE Workshop on High Performance Computing for Upstream
Session: Symbolic Computation
Publication date: 01 October 2017
Info: Extended abstract, PDF ( 435.08Kb )
Price: € 20
In this talk, I will discuss our approach to the formulation and the performance optimization of finite difference methods for PDEs arising in FWI. Our framework consists of a stack of domain specific languages and optimizing compilers. The mathematical specification of a finite difference method is translated by a compiler, Devito, into C code, applying a sophisticated sequence of transformations. These include standard loop transformations, such as blocking and vectorization, as well as symbolic manipulations to reduce the unusually high arithmetic intensity of the stencils arising in forward and adjoint operators. These include common sub-expressions elimination, factorization, code motion and approximation of transient functions. I will show the impact of these transformations on standard Intel Xeon architectures as well as on Intel Knights Landing. Compelling evidence points in the direction that our stencil kernels are significantly bound by the L1 cache. I will conclude discussing future challenges and goals of our work.