Releases: rsenne/ParallelMCMC.jl
Releases · rsenne/ParallelMCMC.jl
Release list
v0.2.0
ParallelMCMC v0.2.0
Breaking
- FlexiChains is now the default (and only built-in) chain type.
sample(model, sampler, N; chain_type=...)returns aFlexiChains.FlexiChaininstead of anMCMCChains.Chains. Usechain_type=SymChainforSymbol-keyed chains orchain_type=VNChainforVarName-keyed chains. - DynamicPPL-backed models must use
VNChain; requestingSymChainfor a DynamicPPL model now throws anArgumentError. - The
MCMCChainsdependency has been removed i.e., there is no longer any MCMCChains output.
Changed
param_nameshandling is more forgiving: user-supplied names are wrapped inFlexiChains.Parameterautomatically,Symbolnames are upgraded toVarNames when aVNChainis requested, and better default names are generated when none are supplied.DynamicPPLcompat bumped to0.41.6, 0.42.
Added
FlexiChainsdependency;DynamicPPLExtnow also loads onFlexiChains.
Merged pull requests:
- Bump codecov/codecov-action from 6 to 7 (#33) (@dependabot[bot])
- docs: clarify Enzyme GPU gradient abort is a gc-transition bug, not b… (#43) (@rsenne)
- FlexiChains by default (#44) (@penelopeysm)
- Bump actions/checkout from 6 to 7 (#46) (@dependabot[bot])
- Use [sources] in docs (#47) (@penelopeysm)
- Update Project.toml (#50) (@rsenne)
- Document 0.2.0 in changelog (#51) (@rsenne)
Closed issues:
v0.1.0
ParallelMCMC v0.1.0
ParallelMCMC v0.1.0
Breaking changes
backendis now a required keyword argument onParallelMALASampler;
DEER.DEFAULT_BACKEND/DEFAULT_HVP_BACKENDand the old default-Enzyme
machinery were removed. To keep the old behaviour, loadEnzymeand pass
backend=AutoEnzyme(; mode=Enzyme.Forward, function_annotation=Enzyme.Duplicated).- Enzyme is now an optional dependency loaded via
EnzymeExtrather 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:
- GPU fixes (#32) (@rsenne)
- Map DynamicPPL samples back to original space (#20) (@penelopeysm)
- Use DynamicPPL adtype path for Turing models (#16) (@rsenne)
Merged pull requests:
- Map DynamicPPL samples back to original space (#20) (@penelopeysm)
- Bump actions/checkout from 4 to 6 (#22) (@dependabot[bot])
- Bump actions/upload-artifact from 4 to 7 (#23) (@dependabot[bot])
- Bump julia-actions/setup-julia from 2 to 3 (#24) (@dependabot[bot])
- Simplify installation command for ParallelMCMC (#27) (@rsenne)
- docs: add rsenne as a contributor for code, maintenance, and 4 more (#30) (@allcontributors[bot])
- docs: add penelopeysm as a contributor for code, test, and 3 more (#31) (@allcontributors[bot])
- GPU fixes (#32) (@rsenne)
- docs: add gdalle as a contributor for review, and ideas (#34) (@allcontributors[bot])
- docs: add wsmoses as a contributor for review (#35) (@allcontributors[bot])
- Update changelog for PR #32, release as 0.1.0 (#42) (@rsenne)
Closed issues:
v0.0.1
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.