Abstract
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 Gate 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 π-estimator for a High Performance Reconfigurable Computer (HPRC) sample application and compare to a software π-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 URL: http://cpc.cs.qub.ac.uk/summaries/AEER_v1_0.html. Program obtainable from: 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 XD1), C++ (XUP), C (Cray XD1). Computer: PowerPC 405 (XUP) / AMD 2.2 GHz Opteron processor (Cray XD1). Operating system: Linux. File size: 15 MB (XUP) / 22 MB (Cray XD1). 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 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.
| Original language | English |
|---|---|
| Pages (from-to) | 2574-2581 |
| Number of pages | 8 |
| Journal | Computer Physics Communications |
| Volume | 180 |
| Issue number | 12 |
| DOIs | |
| State | Published - Dec 2009 |
Keywords
- FPGA
- HASPRNG
- Monte Carlo
- Pseudo-random number generator
- Reconfigurable computing
- SPRNG
Fingerprint
Dive into the research topics of 'HASPRNG: Hardware Accelerated Scalable Parallel Random Number Generators'. Together they form a unique fingerprint.Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver