NGCM-0054 - Automatic Code Generation for Computational Science
Many computational science and engineering problems can be expressed as (time-dependent) partial differential equations, which generally have to be computed numerically. The emergence of new computational paradigms (such as shared memory parallel computation, distributed memory parallel computation, general purpose computing on Graphical Processing Units) often results in the development of new codes to solve the same science problem on the new hardware.
In this project, we aim to develop a simulation software generation framework in which the partial differential equations (PDEs) can be specified symbolically, and (compilable) code will be autogenerated to solve the equations. By developing multiple code generating modules, we can translate the symbolic equations into fast code for multiple computational target platforms, such as shared memory machines using OpenMP, supercomputers such as the UK's high performance computing resource Archer using MPI and appropriate tools for GPU.
Algorithms and computational methods: Finite differences