MultiBUGS

A parallel implementation of the BUGS modelling framework for faster Bayesian inference

MultiBUGS is a software package for performing Bayesian inference. It builds on the existing algorithms and tools in OpenBUGS and WinBUGS, and so is applicable to the broad range of statistical models that can be fitted using BUGS-language software, but automatically parallelises the MCMC algorithm to dramatically speed up computation.

MultiBUGS can run independent chains in parallel (e.g. for MCMC convergence analysis), and also parallelise computation required within each independent chain:

  1. evaluation of the product-form likelihoods (e.g. for ‘fixed effect’ parameters)
  2. sampling of conditionally-independent parameters (e.g. ‘random effects’ parameters)

For example, in an hierarchical regression model including 425,112 observations and 20,426 random effects, we found that OpenBUGS took 32 hours, whereas MultiBUGS took only 28 minutes using 48 cores (4x 16-core AMD processors from 2012). See Goudie et al. (2020) for details.

Getting started

The steps for running an analysis in MultiBUGS are identical to OpenBUGS, except that we must specify how many cores to distribute computation across and initialise the parallelisation. This is specified using the 'distribute' button in the Specification Tool.

An R interface R2MultiBUGS is under development. This is a port of R2OpenBUGS.

Citation

If you use MultiBUGS in your published work, please cite

Goudie, R. J. B., Turner, R. M., De Angelis, D., Thomas, A. (2020) MultiBUGS: A parallel implementation of the BUGS modelling framework for faster Bayesian inference. Journal of Statistical Software, 95(7). doi:10.18637/jss.v095.i07 (slides pdf)

Known Issues

We maintain a list of known issues on GitHub Wiki. Please report issues via GitHub Issues.

Source code

The source code is available on GitHub.