The HECToR Service is now closed and has been superceded by ARCHER.

Performance Optimizations for CARP

The Cardiac Arrhythmia Research Package (CARP) is a widely-used software package designed for large-scale simulation studies of hearts. The aims of these studies are to provide detailed personalised therapies for treatment of medical conditions such as cardiac arrhythmia and involuntary fibrillation. The areas where incorporation of in-silico modelling into the clinical workflow are feasible include cardiac resynchronization therapy (for treatment of arrhythmias); drug trials (looking for possible side-effects); and development of better defibrillators.

Profiling work carried out prior to the start of this project identfied two main areas which needed to be addressed to allow CARP to run efficiently on large HPC platforms. The parallel decomposition scheme results in high levels of load imbalance giving poor performance and the output routines cause a significant bottleneck in simulations of large systems. The aim of this project was to improve the strong scaling of CARP with the first objective being to improve the decomposition used and the second optimisation of the output routines.

  • For this project performance optimisations were carried out on CARP, in particular a parallel mesh decomposition scheme and asynchronous parallel output that give performance improvements of around 250% for small systems, rising to 1800% for large simulations.
  • As a result of these speedups, a monodomain simulation of a human heartbeat (1 second activity) is now possible in under 5 minutes wct: before this work began, the same simulation would take around 75 minutes wct to complete. How further performance gains might be achieved in the code in response to benchmarking of the newly optimised simulations are also described.
  • PETSc linear solver performance and preconditioning was improved.
  • To achieve optimal data locality the performance of the ODE solver was optimised.
  • Non-blocking communications were implemented to improve the output routines.

Please see PDF or HTML for a report which summarises this project.