Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1344671.1344707acmconferencesArticle/Chapter ViewAbstractPublication PagesfpgaConference Proceedingsconference-collections
research-article

A hardware framework for the fast generation of multiple long-period random number streams

Published: 24 February 2008 Publication History

Abstract

Stochastic simulations and other scientific applications that depend on random numbers are increasingly implemented in a parallelized manner in programmable logic. High-quality pseudo-random number generators (PRNG), such as the Mersenne Twister, are often based on binary linear recurrences and have extremely long periods (more than 21024. Many software implementations of such PRNGs exist, but hardware implementations are rare. We have developed an optimized, resource-efficient parallel framework for this class of random number generators that exploits the underlying algorithm as well as FPGA-specific architectural features. The framework also incorporates fast "jump-ahead" capability for these PRNGs, allowing simultaneous, independent sub-streams to be generated in parallel by partitioning one long-period pseudo-random sequence
We demonstrate parallelized implementations of three types of PRNGs -- the 32-, 64- and 128-bit SIMD Mersenne Twister -- on Xilinx Virtex-II Pro FPGAs. Their area/throughput performance is impressive: for example, compared clock-for-clock with a previous FPGA implementation, a "two-parallelized" 32-bit Mersenne Twister uses 41% fewer resources. It can also scale to 350 MHz for a throughput of 22.4 Gbps, which is 5.5x faster than the older FPGA implementation and 7.1x faster than a dedicated software implementation. The quality of generated random numbers is verified with the standard statistical test batteries Diehard and TestU01. We also present two real-world application studies with multiple RNG streams: the Ziggurat method for generating normal random variables and a Monte Carlo photon-transport simulation.The availability of fast long-period random number generators with multiple streams accelerates hardware-based scientific simulations and allows them to scale to greater complexities

References

[1]
A.M. Ferrenberg, D.P. Landau, and Y.J. Wong. Monte carlo simulations: Hidden errors from "good" random number generators. Phys. Rev. Lett., 69(23):3382--3384, Dec 1992.
[2]
J.E. Gentle. Random Number Generation and Monte Carlo Methods. Springer, 2003.
[3]
H. Haramoto, M. Matsumoto, T. Nishimura, F. Panneton, and P. L'Ecuyer. Efficient jump ahead for F2-linear random number generators. INFORMS Journal on Computing, 2007. to appear.
[4]
B. Jun and P. Kocher. White Paper: The Intel Random Number Generator. Cryptography Research, Inc., 1999.
[5]
D.E. Knuth. The Art of Computer Programming, Volume 2: Seminumerical Algorithms. Addison Wesley, Reading, Mass., third edition, 1997.
[6]
S. Konuma and S. Ichikawa. Design and evaluation of hardware pseudo-random number generator MT19937. IEICE Trans. on Info. and Systems, 88(12):2876--2879, 2005.
[7]
T. Kurokawa and H. Kajisaki. FPGA based implementation of Mersenne Twister. Sci. Eng. Rep. Nat. Def. Acad. (Japan), 40(2):15--21, Mar. 2003.
[8]
A.M. Law and W.D. Kelton. Simulation Modeling and Analysis. McGraw Hill, New York, NY, third edition, 2000.
[9]
P. L'Ecuyer and F. Panneton. Construction of equidistributed generators based on linear recurrences modulo 2. In Monte Carlo and Quasi-Monte Carlo Methods 2000, pages 318--330, Berlin, 2002. Springer-Verlag.
[10]
P. L'Ecuyer and R. Simard. On the performance of birthday spacings tests with certain families of random number generators. Math. Comput. Simul., 55(1-3):131--137, 2001.
[11]
P. L'Ecuyer and R. Simard. Testu01: A software library in ANSI C for the empirical testing of random number generators, 2003.
[12]
T.G. Lewis and W.H. Payne. Generalized feedback shift register pseudorandom number algorithm. Journal of the ACM, 20(3):456--468, 1973.
[13]
G. Marsaglia. Generating a variable from the tail of the normal distribution. Technometrics, 6(1):101--102, 1964.
[14]
G. Marsaglia. The Diehard battery of tests of randomness, 1995.
[15]
G. Marsaglia and W.W. Tsang. The ziggurat method for generating random variables. J. Statistical Software, 5(8):1--7, 2000.
[16]
J.L. Massey. Shift-register synthesis and bch decoding. IEEE Trans. Info. Theory, 15:122--127, 1969.
[17]
M. Matsumoto and Y. Kurita. Twisted GFSR generators II. ACM Transactions on Modeling and Computer Simulation, 4(3):254--266, 1994.
[18]
M. Matsumoto and T. Nishimura. Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator. ACM Trans. on Modeling and Computer Simulation, 8(1):3--30, Jan. 1998.
[19]
H. Niederreiter. Random Number Generation and Quasi-Monte Carlo Methods, volume 63 of SIAM CBMS-NSF Regional Conference Series in Applied Mathematics. SIAM, Philadelphia, 1992.
[20]
T. Nishimura. Tables of 64-bit Mersenne Twisters. ACM Trans. Modeling and Computer Simulation, 10(4):348--357, Oct. 2000.
[21]
F. Panneton, P. L'Ecuyer, and M. Matsumoto. Improved long-period generators based on linear recurrences modulo 2. ACM Trans. Math. Softw., 32(1):1--16, 2006.
[22]
A.S. Pasciak and J.R. Ford. A new high speed solution for the evaluation of monte carlo radiation transport computations. IEEE Trans. Nuclear Science, 53(2):491--499, Apr. 2006.
[23]
S.A. Prahl, M. Keijzer, S.L. Jacques, and A.J. Welch. A Monte Carlo model of light propagation in tissue. In SPIE Proc. of Dosimetry of Laser Radiation in Medicine and Biology, volume IS5, pages 102--111, 1989.
[24]
M. Saito. An application of finite field: Design and implementation of 128-bit instruction-based fast pseudorandom number generator. Master's thesis, Hiroshima University, Feb. 2007.
[25]
L. Salwinski and D. Eisenberg. In silico simulation of biological network dynamics. Nature BioTech., 22:1017--1019, 2004.
[26]
A. Srinivasan, M. Mascagni, and D. Ceperley. Testing parallel random number generators. Parallel Computing, 29(1):69--94, 2003.
[27]
V. Sriram and D. Kearney. An area time efficient field programmable Mersenne Twister uniform random number generator. In Proc. Int. Conf. on Eng. of Reconfigurable Systems & Algorithms, pages 244--246, 2006.
[28]
R.C. Tausworthe. Random numbers generated by linear recurrence modulo two. Mathematics of Computation, 19:201--209, 1965.
[29]
D.B. Thomas and W. Luk. High quality uniform random number generation using LUT optimised state-transition matrices. J. VLSI Sig. Proc., 47(1):77--82, Apr. 2007.

Cited By

View all
  • (2021)ThundeRiNGProceedings of the 35th ACM International Conference on Supercomputing10.1145/3447818.3461664(115-126)Online publication date: 3-Jun-2021
  • (2018)A Software/Hardware Parallel Uniform Random Number Generation Framework2018 10th International Conference on Communication Software and Networks (ICCSN)10.1109/ICCSN.2018.8488283(471-474)Online publication date: Jul-2018
  • (2018)A Software/Hardware Parallel Uniform Random Number Generation Framework2018 13th APCA International Conference on Control and Soft Computing (CONTROLO)10.1109/CONTROLO.2018.8439829(471-474)Online publication date: Jun-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
FPGA '08: Proceedings of the 16th international ACM/SIGDA symposium on Field programmable gate arrays
February 2008
278 pages
ISBN:9781595939340
DOI:10.1145/1344671
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 24 February 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. FPGA
  2. mersenne twister
  3. parallelized architecture
  4. random number generator

Qualifiers

  • Research-article

Conference

FPGA08
Sponsor:

Acceptance Rates

Overall Acceptance Rate 125 of 627 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)9
  • Downloads (Last 6 weeks)1
Reflects downloads up to 25 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2021)ThundeRiNGProceedings of the 35th ACM International Conference on Supercomputing10.1145/3447818.3461664(115-126)Online publication date: 3-Jun-2021
  • (2018)A Software/Hardware Parallel Uniform Random Number Generation Framework2018 10th International Conference on Communication Software and Networks (ICCSN)10.1109/ICCSN.2018.8488283(471-474)Online publication date: Jul-2018
  • (2018)A Software/Hardware Parallel Uniform Random Number Generation Framework2018 13th APCA International Conference on Control and Soft Computing (CONTROLO)10.1109/CONTROLO.2018.8439829(471-474)Online publication date: Jun-2018
  • (2017)A memory optimized mersenne-twister random number generator2017 IEEE 60th International Midwest Symposium on Circuits and Systems (MWSCAS)10.1109/MWSCAS.2017.8053004(639-642)Online publication date: Aug-2017
  • (2015)The Table-Hadamard GRNGACM Transactions on Reconfigurable Technology and Systems10.1145/26296078:4(1-22)Online publication date: 24-Sep-2015
  • (2014)On parallel random number generation for accelerating simulations of communication systemsAdvances in Radio Science10.5194/ars-12-75-201412(75-81)Online publication date: 10-Nov-2014
  • (2014)Software/Hardware Parallel Long-Period Random Number Generation Framework Based on the WELL MethodIEEE Transactions on Very Large Scale Integration (VLSI) Systems10.1109/TVLSI.2013.226210322:5(1054-1059)Online publication date: May-2014
  • (2013)A Mersenne Twister Hardware Implementation for the Monte Carlo Localization AlgorithmJournal of Signal Processing Systems10.1007/s11265-012-0661-y70:1(75-85)Online publication date: 1-Jan-2013
  • (2013)Hardware Architecture for the Parallel Generation of Long-Period Random Numbers Using MT MethodComputer Engineering and Technology10.1007/978-3-642-35898-2_2(8-15)Online publication date: 2013
  • (2013)High-Performance Hardware Acceleration of Asset SimulationsHigh-Performance Computing Using FPGAs10.1007/978-1-4614-1791-0_1(3-32)Online publication date: 28-Feb-2013
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media