Li Todo Maggs Krauth 2020
From Werner KRAUTH
| Revision as of 20:30, 17 October 2020 Werner (Talk | contribs) ← Previous diff |
Revision as of 18:35, 24 November 2020 Werner (Talk | contribs) Next diff → |
||
| Line 6: | Line 6: | ||
| [http://arxiv.org/pdf/2004.11040 Electronic version (from arXiv)] | [http://arxiv.org/pdf/2004.11040 Electronic version (from arXiv)] | ||
| + | |||
| + | [https://authors.elsevier.com/a/1c5f12OIndhrT Journal version (free until 7 January 2021, requires subscription afterwards)] | ||
| + | |||
| [https://github.com/jellyfysh/ParaSpheres https://github.com/jellyfysh/ParaSpheres GitHub repository] from which the ParaSpheres programs described in the paper (in Python, Fortran, C++, and shell) may be [https://en.wikipedia.org/wiki/Fork_(software_development) forked], cloned, or simply copied. | [https://github.com/jellyfysh/ParaSpheres https://github.com/jellyfysh/ParaSpheres GitHub repository] from which the ParaSpheres programs described in the paper (in Python, Fortran, C++, and shell) may be [https://en.wikipedia.org/wiki/Fork_(software_development) forked], cloned, or simply copied. | ||
Revision as of 18:35, 24 November 2020
B. Li, S. Todo, A. C. Maggs, W. Krauth Multithreaded event-chain Monte Carlo with local times arXiv:2004.11040 (2020) to appear in Computer Physics Communications
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.
Electronic version (from arXiv)
Journal version (free until 7 January 2021, requires subscription afterwards)
https://github.com/jellyfysh/ParaSpheres GitHub repository from which the ParaSpheres programs described in the paper (in Python, Fortran, C++, and shell) may be forked, cloned, or simply copied.
