The Third Observing Run (O3) of the LIGO-VIRGO-KAGRA Collaboration (LVK) concluded on March 31, 2020, marking a significant milestone with over 90 gravitational-wave (GW) events detected. The upcoming Fourth Observing Run (O4), set to begin in late 2022, is expected to yield more than 150 GW events. Understanding the astrophysics of these events is fundamental to GW astronomy. This involves modelling observed data with parameterised GW signals to identify the sources of the GWs. However, the complexity of some GW models necessitates extensive computational resources, which can be time-consuming.
Parallel Bilby addresses this challenge by enabling the use of multiple computers to process observed data, dramatically reducing computation time from 15 years to just a few days. As the only software capable of handling the most complex GW models, Parallel Bilby was urgently required for the O3 analysis, leading to a rapid release shortly after its inception. To meet this urgent need, the development team had to prioritise functionality over code quality and readability, resulting in a first version that, while functional, was difficult to maintain and develop further due to poor code quality, and lack of unit and end-to-end tests.
In 2021, ADACS developers. collaborated with the Parallel Bilby team to overhaul the software. Through several hands-on development sessions, they restructured the code, addressing the needs and concerns of the Parallel Bilby developers using sound software engineering principles. This collaboration was highly beneficial, as noted by Science Team lead Avi Vajpeyi: “I felt more keyed in the work that was done, as this was an entire overhaul of the codebase.”
Before refactoring, the team established end-to-end tests to ensure the consistency of results, a crucial aspect of scientific reproducibility that Parallel Bilby previously lacked. The ADACS team emphasised the importance of deterministic code execution and worked with the science team to identify and resolve issues preventing determinism. Once a reliable method for assessing result consistency was in place, the ADACS developers refactored the code into modules, adopting modern software development practices. These changes enhanced code readability and facilitated easier future development. Additionally, Parallel Bilby developers were trained in best practices, equipping them to continue producing high-quality software for this project and future projects.
Reflecting on the collaboration, Dr Vajpeyi stated: “Their work has instilled good development practices within the (currently small) development team and made the software more accessible to new developers. Their refactoring and the addition of tests have provided a firmer foundation for future development, which may enable us to make further optimisations to Parallel Bilby.”
Project Image: Bilby logo
Check out some of our other projects.
ADACS collaborated with researchers in Social Network Analysis to improve the performance of their simulation code. This allowed them to tackle research problems that were previously computationally intractable.
The HORMONE simulation code makes use of a novel self-gravity solver. ADACS implemented MPI parallelisation into the code, enabling it to scale across multiple compute nodes, facilitating larger and more detailed simulations.
PHANTOM is an SPH code used for astrophysical simulations. ADACS transitioned its test suite to GitHub Actions, allowing the researchers to develop more rapidly. Recommendations were made on how to improve the code's parallel performance.