Accelerating real-world stencil computations using temporal blocking: handling sparse sources and receivers

Accelerating stencil computations has long been studied on a great variety of platforms and a lot of work has been done on enhancing data locality in order to optimize our computations through use of cache memory. Temporal blocking, also known as time-tiling is a well-known technique for accelerating stencil based computations by enhancing data locality. Solving partial differential equations with the finite difference method yields stencil codes that can solve complex problems described by PDEs. Related work is partly solving the issues encountered in this research area however there is no framework that currently supports the modelling of real-world problems, a high-level syntax of PDE’s, automatic parallel code generation (SIMD/OpenMP/MPI) and loop nest optimizations all together. We introduce an algorithm to apply temporal blocking to phenomena with source injection and is designed to be delivered, and automated as part of the Devito framework.