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.
StarFit, a tool for matching stellar abundance data to nucleosynthesis, was outdated and required a comprehensive revamp. ADACS assited by making key upgrades to the website, creating a PyPI python package, and adding features to the tool.
The CoCoNuT supernova simulation code has a 6-dimensional radiation solver module for simulating neutrino transport. This method is computationally expensive to run, so ADACS enhanced this module with MPI to run in parallel on supercomputers.
BEANSp is a software tool developed to simulate Bayesian Estimation of Accreting Neutron Star parameters. The role of the ADACS support in this project was to analyse the code and suggest and implement improvements.