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.
翻译:ABCpy是用Python书写的一个高模块化的Bayesian Computation(ABC)科学图书馆,其主要贡献是记录一个软件工程工作,使域科学家能够轻而易举地将ABC应用到他们的研究中,而不必是ABC专家;使用ABCpy可以轻松地运行大型平行模拟,而没有太多关于平行化的知识;此外,ABCpy使ABC专家能够很容易地制定新的推论计划,在标准化的环境中对其进行评估,并推广新的算法。这些好处主要来自ABCpy的模块化。我们概述了ABCpy的设计,并提供了侧重于平行化的性能评估。这指出了一些ABC算法的内在不平衡性。我们制定了动态的MPI实施时间表,以缓解这一问题,并根据他们对高性能计算的适应性能评估各种ABC算法。