Cellular Automata Based Multiple Stream Parallel Random Number Generator for 64-Bit Computing
摘要
Generating random numbers in parallel streams has significant applications in fields like simulation, machine learning, and deep learning. These applications often require the rapid generation of large volumes of random numbers in a way that is reproducible, portable, and efficient. This research specifies an enhanced approach to 64-bit random number generation, aiming to improve upon the standard CPU-based implementations of pseudo-random number generators (PRNGs) such as the Mersenne Twister. The proposed method involves a streamlined version of the algorithm that is designed for parallel execution on multi-core CPUs, with the goal of achieving substantial speed enhancements compared to existing algorithms. To achieve this, this work leverages a 2-state 3-neighborhood maximal length linear cellular automaton as the foundational model for the pseudo-random number generator (PRNG). Notably, the new generator successfully passes almost all benchmark empirical tests for randomness as specified by the NIST and Dieharder test suites and is at par with the Mersenne Twister.