All Projects → MultiBUGS → MultiBUGS

MultiBUGS / MultiBUGS

Licence: LGPL-3.0 license
Multi-core BUGS for fast Bayesian inference of large hierarchical models

Programming Languages

shell
77523 projects
C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to MultiBUGS

Gpstuff
GPstuff - Gaussian process models for Bayesian analysis
Stars: ✭ 106 (+278.57%)
Mutual labels:  bayesian, bayesian-inference, mcmc
DynamicHMCExamples.jl
Examples for Bayesian inference using DynamicHMC.jl and related packages.
Stars: ✭ 33 (+17.86%)
Mutual labels:  bayesian, bayesian-inference, mcmc
LogDensityProblems.jl
A common framework for implementing and using log densities for inference.
Stars: ✭ 26 (-7.14%)
Mutual labels:  bayesian, bayesian-inference, mcmc
Shinystan
shinystan R package and ShinyStan GUI
Stars: ✭ 172 (+514.29%)
Mutual labels:  bayesian, bayesian-inference, mcmc
Bda r demos
Bayesian Data Analysis demos for R
Stars: ✭ 409 (+1360.71%)
Mutual labels:  bayesian, bayesian-inference, mcmc
cmdstanr
CmdStanR: the R interface to CmdStan
Stars: ✭ 82 (+192.86%)
Mutual labels:  bayesian, mcmc, markov-chain-monte-carlo
Probabilistic Models
Collection of probabilistic models and inference algorithms
Stars: ✭ 217 (+675%)
Mutual labels:  bayesian, bayesian-inference, mcmc
pysgmcmc
Bayesian Deep Learning with Stochastic Gradient MCMC Methods
Stars: ✭ 31 (+10.71%)
Mutual labels:  bayesian-inference, mcmc, markov-chain-monte-carlo
Bayadera
High-performance Bayesian Data Analysis on the GPU in Clojure
Stars: ✭ 342 (+1121.43%)
Mutual labels:  bayesian, bayesian-inference, mcmc
BayesHMM
Full Bayesian Inference for Hidden Markov Models
Stars: ✭ 35 (+25%)
Mutual labels:  bayesian, bayesian-inference, mcmc
Bda py demos
Bayesian Data Analysis demos for Python
Stars: ✭ 781 (+2689.29%)
Mutual labels:  bayesian, bayesian-inference, mcmc
blangSDK
Blang's software development kit
Stars: ✭ 21 (-25%)
Mutual labels:  bayesian-inference, mcmc, markov-chain-monte-carlo
walker
Bayesian Generalized Linear Models with Time-Varying Coefficients
Stars: ✭ 38 (+35.71%)
Mutual labels:  bayesian, mcmc
Projpred
Projection predictive variable selection
Stars: ✭ 76 (+171.43%)
Mutual labels:  bayesian, bayesian-inference
Bridge.jl
A statistical toolbox for diffusion processes and stochastic differential equations. Named after the Brownian Bridge.
Stars: ✭ 99 (+253.57%)
Mutual labels:  bayesian-inference, mcmc
Dynamichmc.jl
Implementation of robust dynamic Hamiltonian Monte Carlo methods (NUTS) in Julia.
Stars: ✭ 172 (+514.29%)
Mutual labels:  bayesian, bayesian-inference
webmc3
A web interface for exploring PyMC3 traces
Stars: ✭ 46 (+64.29%)
Mutual labels:  bayesian-inference, mcmc
Elfi
ELFI - Engine for Likelihood-Free Inference
Stars: ✭ 208 (+642.86%)
Mutual labels:  bayesian, bayesian-inference
Posterior
The posterior R package
Stars: ✭ 75 (+167.86%)
Mutual labels:  bayesian, mcmc
Stan
Stan development repository. The master branch contains the current release. The develop branch contains the latest stable development. See the Developer Process Wiki for details.
Stars: ✭ 2,177 (+7675%)
Mutual labels:  bayesian, bayesian-inference

MultiBUGS

MultiBUGS implements a simple, automatic algorithm for parallelising Markov chain Monte Carlo (MCMC) algorithms for posterior inference of Bayesian hierarchical models. It builds on the existing algorithms and tools in OpenBUGS, 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. This makes modern multi-core computing accessible to applied statisticians, without requiring any experience of parallel programming.

See the MultiBUGS website for further details.

Contents

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

Installation

See the main MultiBUGS website for installation instructions of the current released version. The current released version of MultiBUGS works on Windows (with Microsoft MPI (MSI-MPI), version >=8.1) or Linux.

Pre-built unstable development versions

Build status

Windows pre-built unstable binaries

We recommend using the stable version from the main MultiBUGS website, but if you want to try out the current unstable version:

  1. Download and install Microsoft MPI (MS-MPI) (v8.1 or newer)

  2. Download the latest master branch build of MultiBUGS. Unzip this to, e.g., C:\Program Files (x86)\MultiBUGS.

Linux pre-built unstable binaries

Pre-built unstable Linux binaries available from Azure Pipeline.

Compiling from source

Compiling from source on Windows

We recommend using the stable version from the main MultiBUGS website, but if you want to compile the current unstable version from source:

  1. Download and install Microsoft MPI (MS-MPI). Version 8.1 or newer is required, since MultiBUGS uses MPI_Comm_spawn. This framework allows running parallel applications on the Windows platform.

  2. Download and install BlackBox 1.7.2 from the BlackBox Framework Center. This is the framework that MultiBUGS is written using.

  3. Download the zip archive of MultiBUGS. Unzip this to, for example, C:\

  4. Make a new shortcut to the BlackBox.exe file in the newly-installed BlackBox directory (right-click on BlackBox.exe, choose "Create shortcut"). Then, right click the newly-created shortcut, choose "Properties", and choose the "Shortcut" tab. Then add the following text to the Target box, with the paths C:\Program Files (x86)\BlackBox Component Builder 1.7\BlackBox.exe (path to BlackBox.exe) and C:\MultiBUGS-master (path to the MultiBUGS directory) changed to match wherever you installed BlackBox and MultiBUGS:

    mpiexec -n 1 "C:\Program Files (x86)\BlackBox Component Builder 1.7\BlackBox.exe" /USE "C:\MultiBUGS-master"
    

    Then change the Start in to match the path to the MultiBUGS directory, e.g.

    "C:\MultiBUGS-master"
    

    You may want to move the shortcut itself to the Desktop to make it easy to access.

  5. Double click the shortcut to open MultiBUGS/BlackBox.

  6. Within MultiBUGS/BlackBox open Make.odc, which is found in the Developer directory in the MultiBUGS directory. Click on the ! beside DevCompiler.CompileThis. This will compile MultiBUGS. The compiler will ask you to confirm the creation of many directories: click OK to confirm all of these in turn. Compiling will take a couple of minutes. Once compiling is finished the status bar should say "ok".

  7. Close BlackBox/MultiBUGS and then reopen it to complete installation. Note that the first time you compile a model, BlackBox/MultiBUGS will confirm creation of a couple of extra directories. The Windows Firewall may also require you to give BlackBox/MultiBUGS permission: this is needed to allow communication between cores.

  8. The shortcut link version will now work. If you would also like to create a self-contained compiled version of MultiBUGS (that doesn't need the BlackBox install) and/or use the MultiBUGS.exe executable, follow the following steps:

    (a) Within MultiBUGS/BlackBox open Linking.odc, which is found in the Developer directory in the MultiBUGS directory. Click on the first two ! buttons in the "How to link MultiBUGS" section in turn. This creates OpenBUGS.exe, which MultiBUGS.exe needs. (More precisely, MultiBUGS.exe is just a wrapper around OpenBUGS.exe that handles setting up MPI.)

    (b) Next, open up BugsPackage.odc, which is within the Rsrc folder within the Bugs folder in the MultiBUGS directory. This opens up the tool that is used to create the self-contained version of MultiBUGS. The path specifies where MultiBUGS will be installed. The other options specify which files are copied to the self-contained installation. Before clicking ok to create the self-contained version it is useful to open the Log window (Info menu > Open log) to make it easy to monitor progress.

    (c) Once this process is complete, MultiBUGS.exe within the self-contained version should work, and the BlackBox installation is not required. Note that the first time you compile a model, MultiBUGS will confirm creation of a couple of extra directories.

Compiling from source on Linux

On Debian/Ubuntu-based systems

  1. Install BlackBox Cross-Platform.

  2. Install 32-bit MPICH

    sudo apt install mpich:i386
    
  3. Download the current master branch and open BlackBox (bbcb).

    wget https://github.com/MultiBUGS/MultiBUGS/archive/master.tar.gz
    tar -xzf master.tar.gz
    cd MultiBUGS-master
    bbcb
    
  4. Within MultiBUGS/BlackBox open MakeLinux.odc, which is found in the Developer directory in the MultiBUGS directory. Click on the ! beside DevCompiler.CompileThis. This will compile MultiBUGS. Once compiling is finished the status bar should say "ok".

  5. Start up MultiBUGS under MPI

    mpiexec -n 1 bbcb
    

License

MultiBUGS is licensed under LGPL-3.0 (GNU Lesser General Public License v3.0)

It includes code from:

  1. BlackBox Framework Center 2-Clause BSD License

    Copyright (c) 2013 - 2019 BlackBox Framework Center
    Copyright (c) 1994 - 2013 Oberon microsystems, Inc., Switzerland.
                              All rights reserved.
    
  2. BlackBox Cross-Platform 2-Clause BSD License

    Copyright (c) 2017 - 2020 Alexander V. Shiryaev, Ivan A. Denisov,
                              Igor A. Dehtyarenko, Anton A. Dmitriev
    Copyright (c) 2013 - 2019 BlackBox Framework Center
    Copyright (c) 1994 - 2013 Oberon microsystems, Inc., Switzerland.
                              All rights reserved.
    
  3. TAUCS GNU LGPL (Library or Lesser GNU Public Library)

    TAUCS Version 2.0, November 29, 2001.
    Copyright (c) 2001, 2002, 2003
    by Sivan Toledo, Tel-Aviv Univesity, [email protected].
    All Rights Reserved.
    
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].