calibr

Parallelized Bayesian calibration of simulations using Gaussian process emulation

https://github.com/ucl/calibr

Science Score: 75.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
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
  • Institutional organization owner
    Organization ucl has institutional domain (www.ucl.ac.uk)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.9%) to scientific vocabulary

Keywords

bayesian-inference calibration emulation high-performance-computing
Last synced: 4 months ago · JSON representation ·

Repository

Parallelized Bayesian calibration of simulations using Gaussian process emulation

Basic Info
Statistics
  • Stars: 1
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
bayesian-inference calibration emulation high-performance-computing
Created about 2 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

calibr

pre-commit Tests status Linting status Documentation status License Documentation

Parallelized Bayesian calibration of simulations using Gaussian process emulation.

calibr is a Python implementation of the algorithm described in Parallel Gaussian process surrogate Bayesian inference with noisy likelihood evaluations (Jrvenp, Gutmann, Vehtari and Marttinen; 2021) (doi:10.1214/20-BA1200, arxiv:1905.01252). It is designed to allow estimation of the posterior distribution on the unknown parameters of expensive to evaluate simulator models given observed data, using a batch sequential design strategy which iterates fitting a Gaussian process emulator to a set of evaluations of the (unnormalized) posterior density for the model and using the emulator to identify a new batch of model parameters at which to evaluate the posterior density which minimize a measure of the expected uncertainty in the emulation of the posterior density.

The posterior density can be evaluated at the parameter values in each batch in parallel, providing the opportunity for speeding up calibration runs on multi-core and multi-node high performance computing systems. The acquisition functions used to choose new parameter values to evaluate are implemented using the high-performance numerical computing framework JAX, with the gradient-based optimization of these acquisition functions exploiting JAX's support for automatic differentiation.

The package is still in the early stages of development, with only a subset of the algorithmic variants proposed by Jrvenp, Gutmann, Vehtari and Marttinen (2021) currently implemented. In particular there is no support yet for models with noisy likelihood evaluations. Expect lots of rough edges!

This project is developed in collaboration with the Centre for Advanced Research Computing, University College London.

Getting started

Prerequisites

calibr requires Python 3.10–3.12.

Installation

We recommend installing in a project specific virtual environment created using a environment management tool such as Mamba or Conda. To install the latest development version of calibr using pip in the currently active environment run

sh pip install git+https://github.com/UCL/calibr.git

Alternatively create a local clone of the repository with

sh git clone https://github.com/UCL/calibr.git

and then install in editable mode by running

sh pip install -e .

Documentation

Documentation for the package is available at https://github-pages.ucl.ac.uk/calibr/.

Running tests

Tests can be run across all compatible Python versions in isolated environments using tox by running

sh tox

To run tests manually in a Python environment with pytest installed run

sh pytest tests

again from the root of the repository.

Building documentation

The MkDocs HTML documentation can be built locally by running

sh tox -e docs

from the root of the repository. The built documentation will be written to site.

Alternatively to build and preview the documentation locally, in a Python environment with the optional docs dependencies installed, run

sh mkdocs serve

Acknowledgements

This work was funded by a grant from the ExCALIBUR programme.

Owner

  • Name: University College London
  • Login: UCL
  • Kind: organization
  • Email: rc-softdev@ucl.ac.uk

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
type: software
authors:
  - family-names: "Graham"
    given-names: "Matt"
    orcid: "https://orcid.org/0000-0001-9104-7960"
    affiliation: University College London
title: "calibr: Bayesian calibration of simulations using Gaussian process emulation"
license: "MIT"

GitHub Events

Total
Last Year

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 27
  • Total Committers: 1
  • Avg Commits per committer: 27.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Matt Graham m****m@g****m 27

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 0
  • Total pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: about 2 hours
  • Total issue authors: 0
  • Total pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • 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
  • matt-graham (2)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/linting.yml actions
  • actions/cache v3 composite
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
.github/workflows/tests.yml actions
  • actions/cache v3 composite
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
pyproject.toml pypi
  • jax *
  • numpy *
  • scipy *