An efficient implementation of Bailey and Borwein’s algorithm for parallel random number generation on graphics processing units
Pseudorandom number generators are required for many computational tasks, such as stochastic modelling and simulation. This paper investigates the serial and parallel implementation of a Linear Congruential Generator for Graphics Processing Units (GPU) based on the binary representation of the normal number α2,3. We adapted two methods of modular reduction which allowed us to perform most operations in 64-bit integer arithmetic, improving on the original implementation based on 106-bit double-double operations, which resulted in four-fold increase in efficiency. We found that our implementation is faster than existing methods in literature, and our generation rate is close to the limiting rate imposed by the efficiency of writing to a GPU’s global memory.
Gleb Beliakov, Michael Johnstone, Doug Creighton and Tim Wilkin. An efficient implementation of Bailey and Borwein’s algorithm for parallel random number generation on graphics processing units. Computing, 2012. [doi: 10.1007/s00607-012-0234-8]