Paul D. Beale

2papers

2 Papers

CRNov 27, 2018
Class of scalable parallel and vectorizable pseudorandom number generators based on non-cryptographic RSA exponentiation ciphers

Jetanat Datephanyawat, Paul D. Beale

Parallel supercomputer-based Monte Carlo and stochastic simulations require pseudorandom number generators that can produce distinct pseudorandom streams across many independent processes. We propose a scalable class of parallel and vectorizable pseudorandom number generators based on a non-cryptographic version of the RSA public-key exponentiation cipher. Our method generates uniformly distributed IEEE double-precision floating point pseudorandom sequences on $[0,1)$ by encrypting pseudorandom sequences of 64-bit integer messages by modular exponentiation. The advantages of the method are: the method is parallelizable by parameterization with each pseudorandom number generator instance derived from an independent 64-bit composite modulus, the method is fully scalable on massively parallel computing clusters because of the millions of available 32-bit prime numbers, the seeding and initialization of the independent streams is simple, the periods of the independent instances are all different and greater than $8.5\times 10^{37}$, and the method passes a battery of intrastream and interstream correlation tests. The calculations in each instance can be vectorized using steam splitting and can produce more than $10^8$ pseudorandom numbers per second on each multicore CPU.

COMP-PHNov 10, 2014
A new class of scalable parallel pseudorandom number generators based on Pohlig-Hellman exponentiation ciphers

Paul D. Beale

Parallel supercomputer-based Monte Carlo applications depend on pseudorandom number generators that produce independent pseudorandom streams across many separate processes. We propose a new scalable class of parallel pseudorandom number generators based on Pohlig--Hellman exponentiation ciphers. The method generates uniformly distributed floating point pseudorandom streams by encrypting simple sequences of integer \textit{messages} into \textit{ciphertexts} by exponentiation modulo prime numbers. The advantages of the method are: the method is trivially parallelizable by parameterization with each pseudorandom number generator derived from an independent prime modulus, the method is fully scalable on massively parallel computing clusters due to the large number of primes available for each implementation, the seeding and initialization of the independent streams is simple, the method requires only a few integer multiply--mod operations per pseudorandom number, the state of each instance is defined by only a few integer values, the period of each instance is different, and the method passes a battery of intrastream and interstream correlation tests using up to $10^{13}$ pseudorandom numbers per test. The 32-bit implementation we propose has millions of possible instances, all with periods greater than $10^{18}$. A 64-bit implementation depends on 128-bit arithmetic, but would have more than $10^{15}$ possible instances and periods greater than $10^{37}$.