TL;DR
This paper introduces a portable, optimized implementation of the RANLUX++ random number generator in C++, suitable for high energy physics applications and tested across various hardware platforms.
Contribution
It provides a portable C++ implementation of RANLUX++, with optimizations to enhance speed while maintaining high statistical quality.
Findings
Performance close to assembler version
Effective on Apple M1 and Nvidia GPUs
Maintains high statistical quality
Abstract
High energy physics has a constant demand for random number generators (RNGs) with high statistical quality. In this paper, we present ROOT's implementation of the RANLUX++ generator. We discuss the choice of relying only on standard C++ for portability reasons. Building on an initial implementation, we describe a set of optimizations to increase generator speed. This allows to reach performance very close to the original assembler version. We test our implementation on an Apple M1 and Nvidia GPUs to demonstrate the advantages of portable code.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
