Redundancy, retiming and data flow in compiling finite-difference applications for manycore architectures

Lead Research Organisation: Imperial College London
Department Name: Earth Science and Engineering


The finite difference method is the most widely-used approach to solving partial differential equations in computational science and engineering - with important applications from subsurface image reconstruction to fluid dynamics to materials science and beyond. Finite difference solvers have characteristic loop and data-access patterns that benefit from optimisations that rely on application knowledge not available in general-purpose compilers. Devito, a software developed in the OPESCI project, provides a high-level language for the finite difference method that opens up the scope for such domain-specific compiler techniques. The goal of this project is to explore this frontier. The key idea we aim to exploit is symbolic manipulation of algebraic expressions to expose redundant computations, and to do this in concert with modelling of when to evaluate such expressions, where to store them, and when pre-computing them is better than recomputing them. We think there is a way to do this in a unified, perhaps even optimal, way. A key element of our research philosophy is the rigorous development of software tools that can be evaluated on diverse real-world problems of industrial and scientific importance. The work will be driven (at least initially) by applications in seismic inversion, which provide a rich spectrum of challenges. We will target the most sophisticated parallel hardware platforms available, including manycore, multithreaded and wide-vector architectures - such as Intel's Xeon Phi and Skylake processors.


10 25 50

Studentship Projects

Project Reference Relationship Related To Start End Student Name
EP/R513052/1 01/10/2018 30/09/2023
2293810 Studentship EP/R513052/1 01/10/2019 30/03/2023 Edward Caunt