Optimizing Nuclear Physics and FLASH for Exascale
Hannah Klion, University of California, Berkeley
FLASH is a high-performance multiphysics code used for a wide range of astrophysical simulations. In particular, it is a commonly used tool for the simulation of Type Ia supernovae, in which runaway fusion ignites in a white dwarf and causes it to explode. The heavy element yields of these events remain uncertain. Current simulations track about a dozen nuclear isotopes, as opposed to the thousands required to completely capture the event's nuclear physics. With the next generations of supercomputers, we will have the computational power to greatly extend the nuclear physics in these simulations.
Simulating nuclear physics and self-gravity accurately and efficiently is critical for modeling a Type Ia supernova, since supernovae are competitions between energy-releasing nuclear reactions and gravity. Currently, the FLASH nuclear reaction network and self-gravity solver require extensive CPU-GPU and inter-node communication. We optimize these routines by reducing the amount of synchronous communication they require. These optimizations are complementary, since they are both necessary to simulate a Type Ia supernova on the next generation of supercomputers.
The first optimization allows the nuclear network to take better advantage of GPUs. The current implementation requires significant CPU-GPU communication. We rewrite the solver such that the entire calculation can be carried out on the GPU, requiring much less communication.
Computing the self-gravity of the star requires solving the Poisson equation, whose solution at any point depends on every other point. As such, the current implementation requires that all nodes communicate with each other multiple times. This is expensive, so we restructure the routine to minimize the amount of required communication and to overlap computation with communication where possible.
To test these optimized routines, we simulate an edge-lit sub-Chandrasekhar mass Type Ia supernova. This allows us to verify our routines' performance and that they simulate the physics correctly.
Abstract Author(s): Hannah Klion, Bronson Messer, Austin Harris, Tom Papatheodore