FPGA-driven pseudorandom number generators aimed at accelerating Monte Carlo methods

Hardware acceleration in High Performance Computing (HPC) context is of growing interest, particularly in the field of Monte Carlo methods where the resort to Field Programmable Gate Array (FPGA) technology has been proven as an effective media, capable of enhancing by several orders the speed execution of stochastic processes. The spread-use of reconfigurable hardware for stochastic simulation gathered a significant effort towards effective implementations of hardware pseudorandom numbers generators (PRNGs) - these generators needed to exhibit a statistically proven random behaviour and to be charactarized by a very long period. In this paper we present the state of the art of hardware pseudorandom number generation in the context of Monte Carlo acceleration. We highlight the emerging trends over the most recent publications and suggest some insights on the forthcoming works. Furthermore, we provide a complete hardware description of a new gaussian variate generator (GVG) and an exponential variate generator (EVG) based on a decision-tree technique of ours, herein presented as well. The prototypes implemented on a Xilinx Virtex II Pro XC2VP100 FPGA occupy from 150 to 417 slices and reach 280 MHz, while exhibiting good statistical behaviours with high p-values on the x2 test and offering a unitary Knuth ratio.

[1]  Takuji Nishimura,et al.  Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator , 1998, TOMC.

[2]  Andrew Chi-Chih Yao,et al.  The complexity of nonuniform random number generation , 1976 .

[3]  Daniel G. Chavarría-Miranda,et al.  Assessing the potential of hybrid hpc systems for scientific applications: a case study , 2007, CF '07.

[4]  Pierre L'Ecuyer,et al.  Maximally equidistributed combined Tausworthe generators , 1996, Math. Comput..

[5]  Howard C. Card,et al.  Stochastic Neural Computation I: Computational Elements , 2001, IEEE Trans. Computers.

[6]  Pierre L'Ecuyer,et al.  Chapter 3 Uniform Random Number Generation , 2006, Simulation.

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

[8]  Somayeh Timarchi,et al.  Evaluation of Some Exponential Random Number Generators Implemented by FPGA , 2005, Parallel and Distributed Computing and Networks.

[9]  Frank Vahid,et al.  A quantitative analysis of the speedup factors of FPGAs over processors , 2004, FPGA '04.

[10]  A.S. Pasciak,et al.  A new high speed solution for the evaluation of Monte Carlo radiation transport computations , 2006, IEEE Transactions on Nuclear Science.

[11]  Wayne Luk,et al.  Resource efficient generators for the floating-point uniform and exponential distributions , 2008, 2008 International Conference on Application-Specific Systems, Architectures and Processors.

[12]  Wayne Luk,et al.  Hierarchical segmentation schemes for function evaluation , 2003, Proceedings. 2003 IEEE International Conference on Field-Programmable Technology (FPT) (IEEE Cat. No.03EX798).

[13]  Wayne Luk,et al.  Comparing floating-point and logarithmic number representations for reconfigurable acceleration , 2006, 2006 IEEE International Conference on Field Programmable Technology.

[14]  Pierre L’Ecuyer,et al.  Random Number Generation , 2008, Encyclopedia of Algorithms.

[15]  Wayne Luk,et al.  Ziggurat-based hardware Gaussian random number generator , 2005, International Conference on Field Programmable Logic and Applications, 2005..

[16]  Joseph M. Lancaster,et al.  Hardware acceleration of pseudo-random number generation for simulation applications , 2003, Proceedings of the 35th Southeastern Symposium on System Theory, 2003..

[17]  Wayne Luk,et al.  Hardware Generation of Arbitrary Random Number Distributions From Uniform Distributions Via the Inversion Method , 2007, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[18]  L. Devroye Non-Uniform Random Variate Generation , 1986 .

[19]  Bruce F. Cockburn,et al.  A Compact and Accurate Gaussian Variate Generator , 2008, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[20]  M. Analoui,et al.  Automatic Generation and Optimisation of Reconfigurable Financial Monte-Carlo Simulations , 2007, 2007 IEEE International Conf. on Application-specific Systems, Architectures and Processors (ASAP).

[21]  Peter Martin,et al.  An Analysis Of Random Number Generators For A Hardware Implementation Of Genetic Programming Using FPGAs And Handel-C , 2002, GECCO.

[22]  Chris S. Wallace Fast pseudorandom generators for normal and exponential variates , 1996, TOMS.

[23]  Robert J. Harrison,et al.  Hardware acceleration of a Quantum Monte Carlo application , 2007 .

[24]  Pierre L'Ecuyer,et al.  TestU01: A C library for empirical testing of random number generators , 2006, TOMS.

[25]  M. E. Muller,et al.  A Note on the Generation of Random Normal Deviates , 1958 .

[26]  M. Sawan,et al.  A new hardware architecture for sampling the exponential distribution , 2008, 2008 Canadian Conference on Electrical and Computer Engineering.

[27]  Wayne Luk,et al.  A hardware Gaussian noise generator using the Box-Muller method and its error analysis , 2006, IEEE Transactions on Computers.

[28]  Wayne Luk,et al.  Non-Uniform Random Number Generation Through Piecewise Linear Approximations , 2006, 2006 International Conference on Field Programmable Logic and Applications.

[29]  G. Marsaglia,et al.  The Ziggurat Method for Generating Random Variables , 2000 .

[30]  Wayne Luk,et al.  Reconfigurable computing: architectures and design methods , 2005 .

[31]  Hiroaki Kitano,et al.  An FPGA-based, multi-model simulation method for biochemical systems , 2005, 19th IEEE International Parallel and Distributed Processing Symposium.

[32]  Wayne Luk,et al.  Automatic Generation and Optimisation of Reconfigurable Financial Monte-Carlo Simulations , 2007, 2007 IEEE International Conf. on Application-specific Systems, Architectures and Processors (ASAP).

[33]  Maya Gokhale,et al.  Monte Carlo Radiative Heat Transfer Simulation on a Reconfigurable Computer , 2004, FPL.

[34]  Wayne Luk,et al.  Sampling from the exponential distribution using independent Bernoulli variates , 2008, 2008 International Conference on Field Programmable Logic and Applications.

[35]  Wayne Luk,et al.  FPGA-optimised high-quality uniform random number generators , 2008, FPGA '08.

[36]  Wayne Luk,et al.  Credit Risk Modelling using Hardware Accelerated Monte-Carlo Simulation , 2008, 2008 16th International Symposium on Field-Programmable Custom Computing Machines.

[37]  David Kearney,et al.  A high throughput area time efficient pseudo uniform random number generator based on the TT800 algorithm , 2007, 2007 International Conference on Field Programmable Logic and Applications.

[38]  Wayne Luk,et al.  A hardware Gaussian noise generator using the Wallace method , 2005, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[39]  Hiroaki Kitano,et al.  FPGA Implementation of a Data-Driven Stochastic Biochemical Simulator with the Next Reaction Method , 2007, 2007 International Conference on Field Programmable Logic and Applications.

[40]  Wayne Luk,et al.  Hardware architectures for Monte-Carlo based financial simulations , 2006, 2006 IEEE International Conference on Field Programmable Technology.

[41]  Deian Stefan,et al.  A hardware framework for the fast generation of multiple long-period random number streams , 2008, FPGA '08.

[42]  Robert J. Harrison,et al.  FPGA acceleration of a quantum Monte Carlo application , 2008, Parallel Comput..