Aims
MICROCARD aims to build an exascale-capable cardiac simulation code that can simulate the tissue cell by cell. It will also develop tools to construct the geometric tissue models that are needed for such simulations.
Software that can simulate the electrical and mechanical behaviour of the heart muscle has existed for a long time, but has almost all relied on homogenization of the cardiac tissue. This means that it does not represent individual cells, but rather treats large numbers of cells as a continuum. This is a very efficient approach, but it has limitations when it comes to simulation of structurally diseased heart muscle, where interactions between individual cells can lead to cardiac arrhythmia. To study such interactions so-called intracellular-membrane-extracellular (EMI) models have been developed. These models explicitly discretize the volumes inside and outside the cells, and the electrically active membrane between them. Until now, EMI models have been very limited in size. The purpose of MICROCARD is to develop an EMI model code that can run on exascale supercomputers, allowing to simulate millions or even billions of cells.
To this end, MICROCARD will work on several topics. It will build on the µCARP code developed by the MICROCARD project (2021-2024). µCARP is an EMI model code based on the community code openCARP.
numerical methods
Central to the code is the numerical scheme that is used to solve the model equations. We will extend the first-order finite-element (FE) method in µCARP with hierarchic second-order FE. High-order exponential integrators will be used to take advantage of the specificities of cardiac ionic models. We will couple the EMI model with homogenized models, to allow efficient simulation of a small diseased area in a whole-heart model.
energy management
Run-time load balancing will be used to optimize the code both in terms of runtime and energy management. Compute kernels will be developed for all CPU and GPU architectures that we encounter. For a large part of the code this will be done by writing the model equations in a custom high-level languate, and using special-purpose compilers to generate optimal system code for each architecture.
linear solvers and preconditioners
We will continue the development of linear-system solvers and preconditioners, tailored to the problem, to each other, to the machine architectures, and to the size of the problem. These algorithms will be implemented in the Ginkgo package, which specializes in efficient multi-GPU computations.
mesh generation and partitioning
Meshes (geometric descriptions) of the cardiac tissue structure are exceptionally complex and exceptionally large. Just a cubic centimetre of cardiac tissue would contain about 8~million muscle cells. It will take billions of model elements to represent their shapes, constituting a volumetric mesh with millions of internal surfaces. We will develop algorithms and tools necessary to build such meshes. We will also develop the tools needed to partition these meshes, that is, to divide them such that computations can work efficiently on millions of processors, each responsible for a part of the mesh.
simulation workflows
We will advance openCARP’s bundle feature to a sharing platform for openCARP in-silico experiments. This platform will be based on git repositories for each experiment (bundle) to allow version control. By providing a defined and automated way of bundling and sharing experiments within openCARP, we allow users to share their openCARP experiments in a standardized format and way including structured metadata, a license and all necessary material to reproduce the experiment. The openCARP developer workflows will also be improved, including CI/CD pipelines for systematic energy performance testing.
benchmarking
Performance of the code in terms of achievable model size, runtime, and energy consumption will be measured throughout the lifetime of the MICROCARD Centre of Excellence. Reports will be issued every 6 months.