Chaste is a state-of-the-art heart simulation code written in C++. It however is very computationally expensive, as high resolution meshes and small timesteps are required for accurate simulation. Even on state-of-the-art clusters, simulations may require significant run-time. ANUGA is a tsunami propagation modelling code (developed conjointly between the ANU and Geoscience Australia). It similarly is computationally intensive. Its implementation is largely based on Python. The tremendous computing power of General-Purpose Graphics Processing Units (GPGPUs or simply GPUs) have the potential to overcome this problem; however, their efficient programming is a non-trivial exercise.
This project will investigate how selected parts of either application may be implemented an a GPGPU using CUDA or OpenCL. comparing various techniques. In particular, it will involve: setting up and profiling a representative workload; analyzing and isolating kernels which would be fruitful for GPU implementation; implementing these kernels, evaluating their performance. Developing test harnesses for these kernels is highly desirable; this and developing methodologies for this kind of development could be used to strengthen the project's software engineering emphasis.
Note: prior GPU experience is recommended for 12-unit project courses.
Parallelisation of a finite volume method for hydrodynamic inundation modelling, Stephen Gwyn Roberts, Linda Stals, Ole Moller Nielsen, ANZIAM Journal, Vol 48 (2006). Chaste: a test-driven approach to software development for biological modelling. Comp Phys Comm 180:2452-2471, 2009.
GPUs are a hot technology; Chaste and ANUGA are hot applications :). Financial support/travel opportunities may be available for suitably qualified Honoursstudents.