Reproducible sampling from intractable distributions with Pigeons.jl

Published: 09 Jun 2025, Last Modified: 14 Jul 2025CODEML@ICML25EveryoneRevisionsBibTeXCC BY 4.0
Keywords: Distributed computation, Bayesian inference, Markov chain Monte Carlo, Parallelism Invariance, Message Passing Interface, Multi-Threading
Abstract: Sampling from complicated probability distributions---such as multimodal posteriors arising in Bayesian inference and high-dimensional distributions in statistical mechanics---is a challenging problem. Pigeons.jl is a Julia package that implements Parallel Tempering, a technique that leverages parallelism to improve the effectiveness of Markov chain Monte Carlo algorithms. Pigeons.jl provides a simple user interface to perform such computations single-threaded, multi-threaded, and/or distributed over thousands of MPI-communicating machines. In this paper, we discuss a feature of Pigeons.jl that we call strong parallelism invariance (SPI): a guarantee that the output for a given seed is identical irrespective of the number of threads and processes. This feature is crucial for scientific reproducibility and software validation. We describe the key features of Pigeons.jl that enable a distributed and randomized algorithm satisfying SPI. Finally, we briefly discuss some recent developments in Pigeons.jl.
Submission Number: 37
Loading