We present SPUX - a modular framework for Bayesian inference enabling uncertainty quantification and propagation in linear and nonlinear, deterministic and stochastic models, and supporting Bayesian model selection. SPUX can be coupled to any serial or parallel application written in any programming language, (e.g. including Python, R, Julia, C/C++, Fortran, Java, or a binary executable), scales effortlessly from serial runs on a personal computer to parallel high performance computing clusters, and aims to provide a platform particularly suited to support and foster reproducibility in computational science. We illustrate SPUX capabilities for a simple yet representative random walk model, describe how to couple different types of user applications, and showcase several readily available examples from environmental sciences. In addition to available state-of-the-art numerical inference algorithms including EMCEE, PMCMC (PF) and SABC, the open source nature of the SPUX framework and the explicit description of the hierarchical parallel SPUX executors should also greatly simplify the implementation and usage of other inference and optimization techniques.
翻译:我们提出了SPUX -- -- 一个模块框架,用于Bayesian推论,在线性和非线性、确定性和随机性模型中进行不确定性的量化和传播,并支持Bayesian模型选择;SPUX可与以任何编程语言(例如包括Python、R、Julia、C/C++、Fortran、Java或二进制执行)书写的任何序列或平行应用结合起来,从个人计算机上连续运行到平行高性能计算群集,规模不费力,目的是提供一个特别适合支持和促进计算科学再复制的平台;我们为简单但有代表性的随机行走模型演示SPUX能力,说明如何将不同类型的用户应用组合起来,并展示环境科学中的若干现成例子;除了现有的最新数字推算算法,包括EMCE、PMCM(PF)和SABC外,SPUX框架的开放源性质和分级平行SPUX执行器的清晰描述,还应大大简化其他推断和优化技术的实施和使用。