Parallel GPU-accelerated recursion-based generators of pseudorandom numbers

The aim of the paper is to show how to design fast parallel algorithms for linear congruential and lagged Fibonacci pseudorandom numbers generators. The new algorithms employ the divide-and-conquer approach for solving linear recurrence systems and can be easily implemented on GPU-accelerated hybrid systems using CUDA or OpenCL. Numerical experiments performed on a computer system with modern Fermi GPU show that they achieve good speedup in comparison to the standard CPU-based sequential algorithms.

[1]  David Thomas,et al.  The Art in Computer Programming , 2001 .

[2]  Ora E. Percus,et al.  Random Number Generators for MIMD Parallel Processors , 1989, J. Parallel Distributed Comput..

[3]  Aaftab Munshi,et al.  The OpenCL specification , 2009, 2009 IEEE Hot Chips 21 Symposium (HCS).

[4]  Przemyslaw Stpiczynski,et al.  Numerical Evaluation of Linear Recurrences on High Performance Computers and Clusters of Workstations , 2004, Parallel Computing in Electrical Engineering, 2004. International Conference on.

[5]  Giray Ökten,et al.  Parameterization based on randomized quasi-Monte Carlo methods , 2008, 2008 IEEE International Symposium on Parallel and Distributed Processing.

[6]  Kevin Skadron,et al.  Scalable parallel programming , 2008, 2008 IEEE Hot Chips 20 Symposium (HCS).

[7]  Michael Mascagni Parallel Linear Congruential Generators with Prime Moduli , 1998, Parallel Comput..

[8]  István Deák,et al.  Uniform random number generators for parallel computers , 1990, Parallel Comput..

[9]  Richard P. Brent,et al.  Uniform random number generators for supercomputers , 1992 .

[10]  Przemyslaw Stpiczynski,et al.  Solving a kind of boundary-value problem for ordinary differential equations using Fermi - The next generation CUDA computing architecture , 2011, J. Comput. Appl. Math..

[11]  Michael Mascagni,et al.  Testing parallel random number generators , 2003, Parallel Comput..

[12]  Przemyslaw Stpiczynski,et al.  Solving Linear Recurrence Systems Using Level 2 and 3 BLAS Routines , 2003, PPAM.

[13]  William H. Press,et al.  Numerical recipes in C , 2002 .

[14]  Michael Mascagni,et al.  Corrigendum: Algorithm 806: SPRNG: a scalable library for pseudorandom number generation , 2000, TOMS.

[15]  Jack J. Dongarra,et al.  Towards dense linear algebra for hybrid GPU accelerated manycore systems , 2009, Parallel Comput..

[16]  A. De Matteis,et al.  A class of parallel random number generators , 1990, Parallel Comput..

[17]  Michael Mascagni,et al.  Parameterizing parallel multiplicative lagged-Fibonacci generators , 2004, Parallel Comput..

[18]  Michael Mascagni SPRNG: A Scalable Library for Pseudorandom Number Generation , 1999, PPSC.

[19]  Hongmei Chi,et al.  Parallel linear congruential generators with Sophie-Germain moduli , 2004, Parallel Comput..

[20]  Michael Mascagni,et al.  Techniques for Testing the Quality of Parallel Pseudorandom Number Generators , 1995, PPSC.

[21]  A. De Matteis,et al.  Long-range correlations in linear and nonlinear random number generators , 1990, Parallel Comput..

[22]  William J. Dally,et al.  The GPU Computing Era , 2010, IEEE Micro.

[23]  P. A. W. Lewis,et al.  A Pseudo-Random Number Generator for the System/360 , 1969, IBM Syst. J..

[24]  Donald Ervin Knuth,et al.  The Art of Computer Programming, Volume II: Seminumerical Algorithms , 1970 .

[25]  Michael Mascagni,et al.  Recent Developments in Parallel Pseudorandom Number Generation , 1993, PPSC.

[26]  Donald E. Knuth,et al.  The art of computer programming. Vol.2: Seminumerical algorithms , 1981 .

[27]  Michael Mascagni,et al.  SPRNG: A Scalable Library for Pseudorandom Number Generation , 1999, PP.

[28]  Ami Marowka,et al.  Parallel Scientific Computation: A Structured Approach using BSP and MPI , 2006, Scalable Comput. Pract. Exp..