Phantom optimisation

CI: – Dr. D. Price

PHANTOM is a publicly available smoothed particle hydrodynamics and magnetohydrodynamics code for astrophysics, described in Price et al. (2018). It contains working implementations of hydrodynamics, magnetohydrodynamics, self-gravity, sink particles, general relativistic hydrodynamics, radiation hydrodynamics, multiple species dust- gas hydrodynamics and more. Since the initial release of the code in 2018 more than 180 papers have been published using the code (NASA ADS). In our group at Monash we continually strive to develop and improve the capabilities of the code, but this is always done with science applications in mind. What this means is that less scientific aspects of the code (i.e. those that do not lead directly to papers), such as working on the MPI scaling, tend to be de-prioritized compared to physics improvements.
While PHANTOM is written in hybrid openMP-MPI parallelization, all scientific use to date has relied on the shared-memory-only code, restricting the available hardware to single nodes on Ozstar (16 or 32 cpus) or Gadi (48 cpus). There are several application areas where this limitation is now pressing, most importantly in simulations of common envelope evolution — forming part of Mike Lau’s PhD project at Monash and Miguel Gonzalez’s PhD project at Macquarie University (under Orsola de Marco).
The aim of this project is to remove the main bottlenecks in the current MPI implementation, based on a 6-week scoping effort performed by the ADACS team during 2021. The desired outcome is the ability to utilise more than the 16, 32 or 48 cores available by being restricted to a shared-memory-only mode. The project will also seek to add rigorous testing (including performance checks) of the MPI code to the existing continuous integration workflow and identify other (non-MPI) areas for optimisation.