Automated finite difference modelling on structured grids, and a variety of compute architectures
Satya P. Jammy, Christian T. Jacobs, Neil D. Sandham · ePrints Soton (University of Southampton) · 2016
The path to exascale computational fluid dynamics requires novel and disruptive hardware architectures that are more powerful than ever. Unfortunately, most numerical modelling frameworks are not in a position to readily exploit such architectures to their full potential. The 'static' nature of the hand-coded discretisation schemes in languages such as C or Fortran means that entire codebases often have to undergo non-trivial modifications in order to run efficiently on more exotic compute platforms such as GPUs and the recently-introduced Intel Xeon Phi cards. This places a huge unsustainable burden on computational scientists to not only be domain specialists, but also experts in numerical methods, parallel computing paradigms, and their efficient implementation. This work introduces a new framework, OpenSBLI, which unlike the majority of existing finite difference models, allows users to specify the equations they want to solve in Einstein notation, and details of the numerical methods, at an abstract level. From this specification, the C code that performs the discretisation is automatically generated. By coupling with the OPS execution framework, the generated code is then tailored towards a desired backend to enable the efficient execution of the model on a wide variety of compute hardware