Multithreaded event-chain Monte Carlo with local times
Abstract
We present a multithreaded event-chain Monte Carlo algorithm (ECMC) for hard spheres. Threads synchronize at infrequent breakpoints and otherwise scan for local horizon violations. Using a mapping onto absorbing Markov chains, we rigorously prove the correctness of a sequential-consistency implementation for small test suites. On x86 and ARM processors, a C++ (OpenMP) implementation that uses compare-and-swap primitives for data access achieves considerable speed-up with respect to single-threaded code. The generalized birthday problem suggests that for the number of threads scaling as the square root of the number of spheres, the horizon-violation probability remains small for a fixed simulation time. We provide C++ and Python open-source code that reproduces all our results.
Keywords
Cite
@article{arxiv.2004.11040,
title = {Multithreaded event-chain Monte Carlo with local times},
author = {Botao Li and Synge Todo and A. C. Maggs and Werner Krauth},
journal= {arXiv preprint arXiv:2004.11040},
year = {2022}
}
Comments
24 pages, 7 figures