Skip to content

Releases: rsenne/ParallelMCMC.jl

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 29 Jun 03:56
1d13aa6

ParallelMCMC v0.2.0

Diff since v0.1.0

Breaking

  • FlexiChains is now the default (and only built-in) chain type. sample(model, sampler, N; chain_type=...) returns a FlexiChains.FlexiChain instead of an MCMCChains.Chains. Use chain_type=SymChain for Symbol-keyed chains or chain_type=VNChain for VarName-keyed chains.
  • DynamicPPL-backed models must use VNChain; requesting SymChain for a DynamicPPL model now throws an ArgumentError.
  • The MCMCChains dependency has been removed i.e., there is no longer any MCMCChains output.

Changed

  • param_names handling is more forgiving: user-supplied names are wrapped in FlexiChains.Parameter automatically, Symbol names are upgraded to VarNames when a VNChain is requested, and better default names are generated when none are supplied.
  • DynamicPPL compat bumped to 0.41.6, 0.42.

Added

  • FlexiChains dependency; DynamicPPLExt now also loads on FlexiChains.

Merged pull requests:

Closed issues:

  • Docs for v0.1.0 didn't build (#45)
  • Add docs link in repo description (#48)

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 17 Jun 21:55
85f4b8f

ParallelMCMC v0.1.0

Diff since v0.0.1

ParallelMCMC v0.1.0

Diff since v0.0.1

Breaking changes

  • backend is now a required keyword argument on ParallelMALASampler;
    DEER.DEFAULT_BACKEND / DEFAULT_HVP_BACKEND and the old default-Enzyme
    machinery were removed. To keep the old behaviour, load Enzyme and pass
    backend=AutoEnzyme(; mode=Enzyme.Forward, function_annotation=Enzyme.Duplicated).
  • Enzyme is now an optional dependency loaded via EnzymeExt rather than a
    hard dependency.
  • The DynamicPPL convenience constructor no longer populates param_names, and
    the heuristic prior-based name extraction was removed.

Merged pull requests:

Merged pull requests:

Closed issues:

  • Add more worked examples (#28)
  • Remove default backend (Enzyme) and make DI the main UI (#29)

v0.0.1

Choose a tag to compare

@github-actions github-actions released this 05 May 15:18
882b6b4

ParallelMCMC v0.0.1

v0.0.1 (2026-05-02) — Initial Release

Features:

  • DEER solver — Parallel-across-the-sequence MALA with Newton iteration. Solves an entire trajectory of $T$ correlated steps simultaneously via affine scan (prefix scan) with $O(\log T)$ work.
  • ParallelMALASampler — Primary parallel sampler supporting stochastic diagonal Jacobian estimation via pushforward (Jacobian-vector products), with jacobian options for diagonal and dense modes.
  • Sequential baselines — MALASampler and AdaptiveMALASampler for comparison / fallback use.
  • GPU support — CUDA-accelerated DEER solver with GPU-compatible indexing and passing GPU tests.
  • DynamicPPL / Turing.jl integration — Extension module ext/DynamicPPLExt provides interoperability with Turing.jl via the LogDensityProblemsAD backend.
  • Multi-AD-backend support — Uses DifferentiationInterface and Enzyme for autodiff, with support for multiple backends including pullbacks and pushforwards.
  • Preconditioning — Support for preconditioned MALA proposals.
  • AbstractMCMC interface — All samplers implement AbstractMCMC and return MCMCChains.Chains objects.
  • Benchmarking suite — benchmarks/ module for performance evaluation.
  • BlockMALA sampler — Blocked version of the MALA sampler included.
    Dependencies
    Requires Julia >= 1.10, AbstractMCMC, CUDA, DifferentiationInterface, Enzyme, and MCMCChains, with optional DynamicPPL / LogDensityProblems / LogDensityProblemsAD for Turing integration.