  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.
