ABCpy : A High-Performance Computing Perspective to Approximate Bayesian Computation - Dutta, Ritabrata; Schoengens, Marcel; Pacchiardi, Lorenzo; Ummadisingu, Avinash; Widmer, Nicole; Künzli, Pierre; Onnela, Jukka-Pekka; Mira, Antonietta (Journal of statistical software, 2021)
ABCpy is a highly modular scientific library for approximate Bayesian computation (ABC) written in Python. The main contribution of this paper is to document a software engineering effort that enables domain scientists to easily apply ABC to their research without being ABC experts; using ABCpy they can easily run large parallel simulations without much knowledge about parallelization. Further, ABCpy enables ABC experts to easily develop new inference schemes and evaluate them in a standardized environment and to extend the library with new algorithms. These benefits come mainly from the modularity of ABCpy. We give an overview of the design of ABCpy and provide a performance evaluation concentrating on parallelization. This points us towards the inherent imbalance in some of the ABC algorithms. We develop a dynamic scheduling MPI implementation to mitigate this issue and evaluate the various ABC algorithms according to their adaptability towards high-performance computing.