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.
翻译:以计算机为主的平行超级计算机 蒙特卡洛 和 随机模拟 要求假冒数发电机能够在许多独立进程中产生不同的假冒流。 我们建议了一种可缩放的平行和可载化伪随机数发电机类别, 其依据是RSA 的非加密版本的公用钥匙缩放密码。 我们的方法生成了统一分布的 IEEEE 的双精度浮点伪兰序列, 以$[10,1]为单位, 以模块推导方式加密64位整形信息的伪随机序列。 方法的优点是: 这种方法可以通过与独立64位复合模数生成的每个假冒数实例的参数化相平行, 这种方法完全可缩放在大规模平行的计算组上, 因为有上百万位的32位位位位位元, 独立流的种子和初始化过程很简单, 独立实例的时期各不相同, 超过8.5 10,37美元。 方法的优点是: 这种方法可以通过一个内部和流内相相关量的电池进行参数化, 与从一个64位复合模数组合组合组合组合组合模型进行计算。 每个例子中的计算, 10, 10, 10- 和每个矢量的计算可以产生10美元。