In 1998, Xing Cai received his PhD in Scientific Computing at the Department of Informatics, University of Oslo. In 1999, he was appointed a position of Associate Professor at the University of Oslo, and was promoted to full professorship in 2008. Dr. Cai joined Simula since its very beginning in 2001, taking an 80% leave from his university position.
The main research topics of Dr. Cai include
- Parallel programming and high-performance scientific computing on multicore CPUs and GPUs.
- Numerical methods for solving partial differential equations (PDEs).
- Generic PDE software
Dr. Cai has participated in numerous PDE related software projects, most noticeably as the principal developer of the Parallel Toolbox within Diffpack, which is now a commercial product marketed by InuTech, Germany.
In addition to working with the above mentioned research topics, Dr. Cai also teaches courses and advises master/doctor-degree students at the University of Oslo. Potential master-degree students are warmly encouraged to take contact for individully designed master projects (see the research activities listed below for some possibilities) or check some examples of available master-degree projects with Dr. Cai as supervisor.
Dr. Cai leads the new research initiative on Computing using Multicore Architectures at Simula and is manager of the project: User-friendly programming of GPU-enhanced clusters via automated code translation and optimization.
Selected research activities
- Study of a dual-sediment transport model, which can be easily extended to multi-lithology cases, in connection with basin formation. The mathematical model consists of two (or more) nonlinear PDEs describing the time history of basin height development and sediment distribution (in the case of two lithologies: mud and sand). Three numerical strategies are under investigation: fully-explicit, semi-implicit and fully-implicit, which have different properties of parallelism, computational speed, numerical stability and accuracy.
- Study of tsunami propagation making use of hybrid mathematical modeling and parallel programming. Advanced mathematical models and numerical methods are used sparingly only in small areas, whereas simple mathematical models and efficient numerical strategies are adopted in the remaining vast regions. Parallelism is enabled at a high level, in which the entire spatial domain (such as an ocean) is divided into many small subdomains. Each subdomain can make use of an independent sequential solver, while the collaboration between the subdomains is enabled in the fashion of additive Schwarz iterations.
- Study of spiral wave formation and breakup in connection with the Aliev-Panfilov model for signal propagation in cardiac tissues. A second-order accurate numerical strategy is designed and compared with a standard fully-explicit first-order method. On a parallel system made up of a cluster of CPUs, the second-order scheme has shown the potential of being more computationally efficient on very fine mesh resolutions, whereas on GPUs, the first-order numerical strategy seems to have a clear upper hand due to its simplicity.
- Study of initiation and propagation of spontaneous intracellular calcium waves in ventricular myocytes. Due to an intricate 3D geometry description of the myocytes, high resolution is needed in the numerical solution of the underlying 3D reaction-diffusion mathematical model. A combined MPI and OpenMP programming model has been applied in the software implementation.
- Parallel implementation of a lumped particle method in connection with turbidity flow modeling on shared-memory architecture. The current focus is on the design of data structure and associated numerical computations via the OpenMP programming model. A possibility for future work is to extend the parallel implementation to distributed-memory systems.
- Study of the Python programming language in connection with high-performance scientific computations and easy parallelization of existing sequential software code.