  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.
