Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] aeer_v1_0.tar.gz(6357 Kbytes)
Manuscript Title: HASPRNG: Hardware Accelerated Scalable Parallel Random Number Generators
Authors: JunKyu Lee, Gregory D. Peterson, Robert J. Hinde, Robert J. Harrison
Program title: HASPRNG
Catalogue identifier: AEER_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 180(2009)2574
Programming language: VHDL (XUP and Cray XD1), C++ (XUP), C (Cray XD1).
Computer: PowerPC 405 (XUP) / AMD 2.2GHz Opteron processor (Cray XD1).
Operating system: Linux.
RAM: 15MB (XUP) / 22MB (Cray XD1)
Keywords: FPGA, Pseudo-random number generator, SPRNG, HASPRNG, Reconfigurable computing, Monte Carlo.
PACS: 07.05.Tp, 05.10.Ln, 02.70.Uu, 07.05.Bx.
Classification: 4.13.

Nature of problem:
Many computational science applications are able to consume large numbers of random numbers. For example, Monte Carlo simulations such as α-estimation are able to consume limitless random numbers for the computation as long as hardware resources for the computing are supported. Moreover, parallel computational science applications require independent streams of random numbers to attain statistically significant results. The SPRNG library provides this capability, but at a significant computational cost. The library presented here accelerates the generators of independent streams of random numbers.

Solution method:
Multiple copies of random number generators in FPGAs allow a computational science application to consume large numbers of random numbers from independent, parallel streams. HASPRNG is a random number generators library to allow a computational science application to employ the multiple copies of random number generators to boost performance. Users can interface HASPRNG with software code executing on microprocessors and/or with hardware applications executing on FPGAs.