mpiabc

MPI implementation of parameter fitting using approximate Bayesian computing (ABC) with sequential Monte Carlo (SMC) sampling

https://github.com/omsai/mpiabc

Science Score: 31.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.1%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

MPI implementation of parameter fitting using approximate Bayesian computing (ABC) with sequential Monte Carlo (SMC) sampling

Basic Info
  • Host: GitHub
  • Owner: omsai
  • License: apache-2.0
  • Language: C
  • Default Branch: main
  • Homepage:
  • Size: 62.5 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created about 2 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License Citation

README.md

Overview

Approximate Bayesian computing (ABC) with sequential Monte Carlo (SMC) sampling is an increasingly popular and principled approach for "tuning" slow-running stochastic models with a large number of parameters to multiple datasets. This process of choosing intervals of parameter values to match the datasets is also sometimes referred to as "model calibration".

Existing higher-level language implementations of ABC-SMC samplers lack a few desirable features:

  1. Debugging crashes of samplers written in higher-level languages that occur several days of walltime is more challenging than using rich coredumps from compiled languages like C and C++.
  2. Checkpointing and resuming calibrations is generally not supported by higher-level language ABC-SMC samplers.
  3. Parallel logging facilities are also not supported.
  4. Multivariate parameters like Dirichlet distributions e.g. of observed infection outcomes.

Such limitations jusfify the additional time and complexity involved with using lower-level languages to support these and other desirable features with more intricate control over implementation.

Configure dependencies

Polaris cluster

Load the modules for the MPI-ABC dependencies:\n

bash module use /soft/modulefiles module load cray-python spack-pe-base ninja math_libs/gsl doxygen

Local

If not using Polaris, fallback to a spack environment called "mpi-abc":\n

```bash git clone -c feature.manyFiles=true https://github.com/spack/spack.git cd spack source share/spack/setup-env.sh spack compiler find spack env create mpi-abc spack env activate mpi-abc spack add mpich spack add gsl+external-cblas spack add doxygen spack add ninja

For tests

spack add py-gcovr spack concretize spack install ```

Then to use this spack environment in the future:\n

shell source spack/share/spack/setup-env.sh spack env activate mpi-abc

Build

Run meson to build both the executable infer:\n

```bash BUILDDIR=../build-mpiabc meson setup -Db_coverage=true $BUILDDIR meson compile -C $BUILDDIR

Optional locations of headers for editing source files with Emacs flycheck:

cp -a $BUILDDIR/.dir-locals.el . ```

Documentation

Generate the Doxygen PDF at $BUILDDIR/latex/refman.pdf:\n

bash BUILDDIR=../build-mpiabc meson compile -C $BUILDDIR docs

Test

bash BUILDDIR=../build-mpiabc meson test --suite mpiabc -C $BUILDDIR

Check test coverage with:\n

bash BUILDDIR=../build-mpiabc meson setup -Db_coverage=true --reconfigure $BUILDDIR meson test --suite mpiabc -C $BUILDDIR ninja coverage-text -C $BUILDDIR && cat $BUILDDIR/meson-logs/coverage.txt

Check for memory leaks with:\n

bash BUILDDIR=../build-mpiabc CK_FORK=no valgrind --leak-check=full $BUILDDIR/test_abc

API

The included example Lotka-Volterra model illustrates the 4 steps necessary to integrate a model into the MPI-ABC framework:

  1. Fit priors matching parameters in the model to the calibrated.
  2. Fix the remaining parameters.
  3. Check that the model produces outcome variables.
  4. Convert model outcomes into one-or-more distances; the distances are also called summary statistics.

Owner

  • Name: Pariksheet Nanda
  • Login: omsai
  • Kind: user

Citation (citations.bib)

@book{sisson2019,
address = {Boca Raton},
title = {Handbook of approximate Bayesian computation},
isbn = {978-1-4398-8151-4},
publisher = {CRC Press, Taylor and Francis Group},
editor = {Sisson, S. A. and Fan, Y. and Beaumont, M. A.},
year = {2019},
keywords = {Bayesian statistical decision theory, Mathematical analysis},
}

GitHub Events

Total
Last Year

Issues and Pull Requests

Last synced: over 1 year ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels