This master project aims to greatly enhance the automated code generator Gotran, which takes as input a high-level description of a mathematical cell model (such as in the CellML format) and can automatically produce various forms of computer code that can run on different hardware architectures.
More specifically, the Gotran code generator will be improved in the following three aspects:
- Portable SIMD vectorisation commands will be automatically inserted into the output code that targets multicore CPUs. This is for ensuring full utilisation of the vectorisation capability of modern CPU architectures.
- User-controllable addition of lookup tables will be enabled inside the Gotran code generator. This technique can lead to a considerable saving of the computing time for many cases.
- The Gotran code generator will be extended to produce new code that can efficiently run on the latest graphics processing units (GPUs), such as Nvidia's A100 GPUs and AMD's Mi100 GPUs.
The eX3 infrastructure, which has a rich collection of the latest-generation CPUs and GPUs, will be used as the hardware testbed. The enhanced Gotran code generator will also be verified in realistic cardiac simulators.
The master student will, through the master project work, become proficient in technical programming. Specifically, the student will acquire advanced knowledge in automated code generation, code optimisation, parallelisation, GPU programming and fundamental algorithms for numerically simulating cardiac cells.
Good programming skills are required before starting the master project. The master student is also expected to be interested in learning new knowledge under close interactions with the supervisors.