Abstract

MultiBUGS is a new version of the general-purpose Bayesian modelling software BUGS that implements a generic algorithm for parallelising Markov chain Monte Carlo (MCMC) algorithms to speed up posterior inference of Bayesian models. The algorithm parallelises evaluation of the product-form likelihoods formed when a parameter has many children in the directed acyclic graph (DAG) representation; and parallelises sampling of conditionally-independent sets of parameters. A heuristic algorithm is used to decide which approach to use for each parameter and to apportion computation across computational cores. This enables MultiBUGS to automatically parallelise the broad range of statistical models that can be fitted using BUGS-language software, making the dramatic speed-ups of modern multi-core computing accessible to applied statisticians, without requiring any experience of parallel programming. We demonstrate the use of MultiBUGS on simulated data designed to mimic a hierarchical e-health linked-data study of methadone prescriptions including 425,112 observations and 20,426 random effects. Posterior inference for the e-health model takes several hours in existing software, but MultiBUGS can perform inference in only 28 minutes using 48 computational cores.

Highlights

  • BUGS is a long running project that makes easy to use Bayesian modeling software available to the statistics community

  • The model, data and initial conditions for the seeds examples can be found within MultiBUGS in Examples Examples Vol I Seeds: random effects logistic regression. This is a simple model involving a small number of parameters and observations, so computation is already fast in OpenBUGS and is no faster in MultiBUGS because the benefit of parallelization is canceled out by communication overheads

  • MultiBUGS makes Bayesian inference using multi-core processing accessible for the first time to applied statisticians working with the broad class of statistical models available in the BUGS language software

Read more

Summary

Introduction

BUGS is a long running project that makes easy to use Bayesian modeling software available to the statistics community. The software is structured around the twin ideas of the declarative BUGS language (Thomas 2006), through which the user specifies the graphical model (Lauritzen, Dawid, Larsen, and Leimer 1990) that defines the statistical model to be analyzed; and Markov chain Monte Carlo simulation (MCMC; Geman and Geman 1984; Gelfand and Smith 1990), which is used to estimate the posterior distribution. These ideas have been widely adopted in other Bayesian software, notably in JAGS (Plummer 2017) and NIMBLE (de Valpine, Turek, Paciorek, Anderson-Bergman, Lang, and Bodik 2017), and related ideas are used in Stan (Carpenter et al 2017). The aim of MultiBUGS is to make available to applied statistics practitioners the dramatic speed-ups of multi-core computation without requiring any knowledge of parallel programming, through an easy-to-use implementation of a generic, automatic algorithm for parallelizing the MCMC algorithms used by BUGS-style software

Approaches to MCMC parallelization
MultiBUGS software
Models and notation
Parallelization methods in MultiBUGS
Implementation details
Basic usage of MultiBUGS
Seeds example
Illustration of usage with hierarchical e-health data
E-health data
E-health model
E-health initial values
Parallelization in MultiBUGS
Run time comparisons across BUGS implementations
Discussion
Identifying conditionally independent parameters
Identifying parallelizable likelihoods
Building a computation schedule
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call