MPI Parallelisation of a Boltzmann Solver for Supernova Simulations
Core-collapse supernovae are spectacular explosions that mark the deaths of massive stars. The iron core of the star, formed after various stages of nuclear fusion, eventually collapses to a neutron star within a fraction of a second. Only a small fraction of the potential energy liberated during collapse is required to blow off the outer layers of the star. Many of the chemical elements around us come predominantly from these explosions, for example the oxygen we breathe, the calcium in our bones, and the silicon in our computer chips.
It is widely believed that the requisite energy to power the explosion is delivered by neutrinos that are copiously emitted from the surface of the young neutron star. The neutrinos also determine the composition of the material at the centre of the explosion because they can turn neutrons and protons into each other by ‘charged-current interactions’. Unfortunately, it is very challenging to simulate how neutrinos are emitted, reabsorbed, and scattered as they stream out of the young neutron star and deposit some of their energy behind the shock wave of the explosion. In general, the neutrino radiation field is described by a complicated equation – the Boltzmann equation – for the six-dimensional “distribution function” that specifies the density of neutrinos as a function of their spatial location, energy, and direction. Current supernova simulations cannot solve the six-dimensional Boltzmann equation yet and have to resort to simpler approximations for the transport of neutrinos. In order to produce more accurate models of supernova explosions, astrophysicists are seeking to develop massively parallel algorithms to solve the neutrino Boltzmann equation on big supercomputers.
In this project, ADACS scientists Dr Conrad Chan and Dr Shibli Saleheen took a significant step towards this goal by developing a massively parallel Boltzmann solver for the supernova simulation code CoCoNuT used by the stellar explosion group at Monash. This new solver leverages the parallelisation method used by the hydrodynamical solver of CoCoNuT, generalising it for the neutrino distribution function. In this scheme, the problem is solved efficiently by breaking up the spatial domain into “rays” which are distributed across the supercomputer and tackled in parallel. By adopting the same domain decomposition, the Boltzmann solver integrates seamlessly with the existing code. Preliminary performance measurements show that this new solver scales exceptionally to hundreds of CPU cores, and suggest that it will continue to be efficient up to thousands of CPU cores when run on larger supercomputers.
The new code will allow the Monash supernova group to finally conduct axially symmetric supernova simulations of axisymmetric explosions with full Boltzmann transport and prepare for bigger simulations in the future. The new capabilities will be especially useful for powerful and very asymmetric explosions that may involve powerful jets or accretion disks around the neutron star or black hole. A/Prof Bernhard Mueller (Monash) stressed that this major code upgrade would not have been possible without experienced ADACS programmers, and will profit supernova research for years to come. After final tests and a first production run, the ADACS team and the Monash group will describe the new algorithm in more detail and make a standalone version of the neutrino transport module available.