ANU02: Generalising FourierFlows.jl to run effortlessly on CPU and GPU

Supervisor:

Navid Constantinou ( navid.constantinou@anu.edu.au )

Climate science and the software that enables it are no longer distinguishable. Julia is a new programming language specifically designed for numerical computing that “walks like Python, runs like C.” Julia blends powerful high-level syntax suitable for scripting and hacking at interactive prompts with scalable performance. This enables pure-Julia implementations of the most complex and computationally intensive climate software.

I am one of the lead developers of FourierFlows.jl, which is an ecosystem for solving partial differential equations on doubly periodic domains using pseudo-spectral Fourier-based methods. The proposed project involves generalising FourierFlows.jl so that it can run both on CPUs and on GPUs effortlessly. Running simulations on GPUs will enable up to 100 or even 200-times speedups. This will make possible to run, e.g., very-high-resolution turbulence simulations and visualise them in real-time. The outcome of the project would be important for both research and teaching applications.

Disclaimer: You don’t need to already know Julia to undertake this project. A candidate with relatively strong experience, e.g., with python, C or another coding language will pick up Julia easily. If, however, you have no prior experience whatsoever with numerical computing then this project is not for you.