4.7 Article

HASPRNG: Hardware Accelerated Scalable Parallel Random Number Generators

Journal

COMPUTER PHYSICS COMMUNICATIONS
Volume 180, Issue 12, Pages 2574-2581

Publisher

ELSEVIER SCIENCE BV
DOI: 10.1016/j.cpc.2009.07.002

Keywords

FPGA; Pseudo-random number generator; SPRNG; HASPRING; Reconfigurable computing; Monte Carlo

Ask authors/readers for more resources

The Scalable Parallel Random Number Generators library (SPRNG) supports fast and scalable random number generation with good statistical properties for parallel computational science applications. In order to accelerate SPRNG in high performance reconfigurable computing systems, we present the Hardware Accelerated SPRNG library (HASPRNG). Ported to the Xilinx University Program (XUP) and Cray XD1 reconfigurable computing platforms, HASPRNG includes the reconfigurable logic for Field Programmable Cate Arrays (FPGAs) along with a programming interface which performs integer random number generation that produces identical results with SPRNG. This paper describes the reconfigurable logic of HASPRNG exploiting the mathematical properties and data parallelism residing in the SPRNG algorithms to produce high performance and also describes how to use the programming interface to minimize the communication overhead between FPGAs and microprocessors. The programming interface allows a user to be able to use HASPRNG the same way as SPRNG 2.0 on platforms such as the Cray XD1. We also describe how to install HASPRNG and use it. For HASPRNG usage we discuss a FPGA 7r-estimator for a High Performance Reconfigurable Computer (HPRC) sample application and compare to a software 7r-estimator. HASPRNG shows 1.7x speedup over SPRNG on the Cray XD1 and is able to obtain substantial speedup for a HPRC application. Program summary Program title: HASPRNG Catalogue identifier AEER_v1_0 Program summary LIRL: http://cpc.cs.qub.ac.uk/summaries/AEER-v1_0.html Program obtainablefrom: CPC Program Library, Queen's University, Belfast, N. Ireland Licensing provisions: Standard CPC licence, http://cpc.cs.qub.ac.uk/licence/licence.html No. of lines in distributed program, including test data, etc.: 594 928 No. of bytes in distributed program, including test data, etc.: 6 509 724 Distribution format: tar.gz Programming language: VHDL (XUP and Cray XDI), C++ (XUP), C (Cray XD1) Computer: PowerPC 405 (XUP) / AMD 2.2 GHz Opteron processor (Cray XDI) Operating system: Linux File size: 15 MB (XUP) / 22 MB (Cray XDI) 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 pi-estimation are able to consume limitless random numbers forthe 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. (C) 2009 Elsevier B.V. All rights reserved.

Authors

I am an author on this paper
Click your name to claim this paper and add it to your profile.

Reviews

Primary Rating

4.7
Not enough ratings

Secondary Ratings

Novelty
-
Significance
-
Scientific rigor
-
Rate this paper

Recommended

No Data Available
No Data Available