Towards Easy Parallel Computation for Computational Fluid Dynamics (CFD)

Computational scientists are typically not expert programmers and thus have to work with easy to use programming languages.  However, they have very high-performance requirements due to their experimental setup and large datasets and have to rely on parallel computing machines for tasks like simulation runs. Unfortunately, the increasing specialisation and complexity in computing hardware have made parallel programming a daunting task for mainstream computational researchers. Without a viable solution, they cannot unlock the potential of parallel hardware and science and technology innovations will slow down.  

This project will find ways to make parallel programming accessible to every computational scientist. The PhD student will take representative computational fluid dynamics (CFD) problems as a case study to develop novel approaches to help CFD developers to easily write and optimise code to take full advantages of parallel hardware. It will investigate how to best express the high-level algorithmic intent in the programming language and carry such information into the executable binary to optimise code.  If successful, this project will usher in an era of change in how computational scientists could exploit parallel computing infrastructures where, rather than deny and fear the increasing specialisation in computing hardware, we embrace and utilise it.