Project Description
The Cellular Potts Model (CPM) is a flexible tool for simulating various biological phenomena. Its original sequential formulation limits the applicability of the model as even moderate-sized simulations require tens of millions of iterations per timestep. We have recently introduced a novel, simple parallelization scheme for the CPM that allows us to exploit the strengths of modern GPUs. However, common high-level interfaces to the GPU such as PyTorch, Jax, Tensorflow etc. have been designed for the express purpose of Tensor-based calculation. The CPM does not fit into this paradigm.
Recent years have seen the introduction of multiple high-level non-tensor based GPU interfaces such as CuPy, Numba, JuliaGPU, NVIDIA Warp and TaichiLang. For our first version of the Parallel CPM, we have chosen to implement the model in TaichiLang. The purpose of this project is to transfer this implementation to the most popular non-tensor interfaces for benchmarking and comparison. Points of interest could be computational speed, ease-of-use but also availability of Automatic Differentiation tools which are used at the intersection of the CPM and AI. This will help in deciding what interface is best suited going forward.
The student will familiarise themself with the CPM and the basic concepts of general-purpose GPU programming as well as developing an overview over the field of high-level non-tensor based GPU interfaces. With guidance of the supervisors, the student will re-implement the Parallel CPM using the most common interfaces and benchmark the results.
People
Jan Schering, Johannes Textor
Requirements
Overview