Abstract
Large-scale parallel surrogate data generation and neuronal network simulation require far more pseudorandom numbers than many popular pseudorandom number generators (PRNGs) can deliver. Fortunately, random number generation has progressed from black art to science over the past two decades, providing us with reliable algorithms for generating random numbers and rigorous tests for such algorithms. In this chapter we will first review requirements for good PRNGs, before presenting the basic principles of some widely used generators, including cryptographic generators. We then discuss seeding strategies and the transformation of integer random numbers to random variates following other distributions.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Barker E, Kelsey J (2007) Recommendation for random number generation using deterministic random bit generators (revised). Technical Report NIST Special Publication 800-90. National Institute of Standards and Technology. http://csrc.nist.gov/publications/nistpubs/800-90/SP800-90revised_March2007.pdf
Bauke H, Mertens S (2004) Pseudo random coins show more heads than tails. J Stat Phys 114:1149–1169
Bauke H, Mertens S (2007) Random numbers for large-scale distributed Monte Carlo simulations. Phys Rev E (Statist Nonlin Soft Matter Phys) 75:066701. doi:10.1103/PhysRevE.75.066701. http://link.aps.org/abstract/PRE/v75/e066701
Brent RP (2006) Fast and reliable random number generators for scientific computing. In: Proceedings of the PARA’04 workshop on the state-of-the-art in scientific computing. Lect notes comput sci, vol 3732. Springer, Berlin, pp 1–10. http://wwwmaths.anu.edu.au/~brent/pub/pub217.html
Compagner A (1995) Operational conditions for random-number generation. Phys Rev E 52(5):5634–5645. doi:10.1103/PhysRevE.52.5634
Devroye L (1986) Non-uniform random variate generation. Springer, New York. Out of print. Available at http://cg.scs.carleton.ca/~luc/rnbookindex.html
Doornik JA (2007) Conversion of high-period random numbers to floating point. ACM Trans Model Comput Simul 17:3. http://doi.acm.org/10.1145/1189756.1189759
Dworkin M (2001) Recommendation for block cipher modes of operation: methods and techniques. Technical Report NIST Special Publication 800-38A. National Institute of Standards and Technology. http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf
Eichenauer J, Lehn J (1986) A nonlinear congruential pseudorandom number generator. Stat Hefte 27:315–326
Ferrenberg AM, Landau DP, Wong YJ (1992) Monte Carlo simulations: Hidden errors from “good” random number generators. Phys Rev Lett 69(23):3382–3384. doi:10.1103/PhysRevLett.69.3382
Galassi M, Davies J, Theiler J, Gough B, Jungman G, Booth M, Rossi F (2001) GNU scientific library reference manual. Network Theory, Bristol. http://sources.redhat.com/gsl
Gentle JE (2003) Random number generation and Monte Carlo methods, 2nd edn. Springer Science + Business Media, New York
Hansel D, Mato G, Meunier C, Neltner L (1998) On numerical simulations of integrate-and-fire neural networks. Neural Comput 10:467–483
Haramoto H, Matsumoto M, Nishimura T, Panneton F, L’Ecuyer P (2008) Efficient jump ahead for \(\mathbb{F}_{2}\)-linear random number generators. INFORMS J Comput 20(3):385–390. http://www.iro.umontreal.ca/~lecuyer/myftp/papers/jumpf2.pdf
Hellekalek P, Wegenkittl S (2003) Empirical evidence concerning AES. ACM Trans Model Comput Simul 13:322–333
Kim C, Choe GH, Kim DH (2008) Test of randomness by the gambler’s ruin algorithm. Appl Math Comput 199:195–210. doi:10.1016/j.amc.2007.09.060
Knuth DE (1998) The art of computer programming, vol 2, 3rd edn. Addison-Wesley, Reading
L’Ecuyer P (1999) Good parameters and implementations for combined multiple recursive random number generators. Oper Res 47:159–164
L’Ecuyer P (2004) Random number generation. In: Gentle JE, Haerdle W, Mori Y (eds) Handbook of computational statistics. Springer, Berlin, pp 35–70. http://www.iro.umontreal.ca/~lecuyer/myftp/papers/handstat.pdf
L’Ecuyer P, Panneton F (2005) Fast random number generators based on linear recurrences modulo 2: overview and comparison. In: Kuhl ME, Steiger NM, Armstrong FB, Jones JA (eds) Proceedings of the 2005 winter simulation conference, pp 110–119
L’Ecuyer P, Simard R (2007) TestU01: A C library for empirical testing of random number generators. ACM Trans Math Softw 33:22. Article 22, 40 pages. doi:10.1145/1268776.1268777. http://www.iro.umontreal.ca/~simardr/testu01/tu01.html
L’Ecuyer P, Simard R, Chen EJ, Kelton WD (2002) An object-oriented random-number package with many long streams and substreams. Oper Res 50:1073–1075
Lewis PAW, Goodman AS, Miller JM (1969) A pseudo-random number generator for the System/360. IBM Syst J 8:136–146
Lüscher M (1994) A portable high-quality random number generator for lattice field theory simulations. Comput Phys Commun 79:100–110
Marsaglia G, Tsang WW (2004) The 64-bit universal RNG. Statist Probab Lett 66:183–187
Mascagni M, Srinivasan A (2000) Algorithm 806: SPRNG: a scalable library for pseudorandom number generation. ACM Trans Math Softw 26(3):436–461. http://doi.acm.org/10.1145/358407.358427
Mascagni M, Srinivasan A (2004) Parameterizing parallel multiplicative lagged-Fibonacci generators. Parallel Comput 30:899–916
Matsumoto M, Nishimura T (1998) Mersenne twister: a 623-dimensionally equidistributed uniform pseudorandom number generator. ACM Trans Model Comput Simul 8:3–30
Matsumoto M, Saito M, Haramoto H, Nishimura T (2006) Pseudorandom number generation: impossibility and compromise. J Univers Comput Sci 12:672–690
Matsumoto M, Wada I, Kuramoto A, Ashihara H (2007) Common defects in initialization of pseudorandom number generators. ACM Trans Model Comput Simul 17:15. http://doi.acm.org/10.1145/1276927.1276928
Panneton F, L’Ecuyer P, Matsumoto M (2006) Improved long-period generators based on linear recurrences module 2. ACM Trans Math Softw 32:1–16
Park SK, Miller KW (1988) Random number generators: good ones are hard to find. Commun ACM 31:1192–1201
Plesser HE, Jahnsen AG (2010) Re-seeding invalidates tests of random number generators. Appl Math Comput 217:339–346. doi:10.1016/j.amc.2010.05.066
Press WH, Teukolsky SA, Vetterling WT, Flannery BP (1992) Numerical recipes in C, 2nd edn. Cambridge University Press, Cambridge
Saito M, Matsumoto M (2008) SIMD-oriented fast Mersenne twister: a 128-bit pseudorandom number generator. In: Keller A, Heinrich S, Niederreiter H (eds) Monte Carlo and quasi-Monte Carlo methods 2006. Springer, Berlin, pp 607–622
Tzeng S, Wei LY (2008) Parallel white noise generation on a GPU via cryptographic hash. In: I3D ’08: Proceedings of the 2008 symposium on interactive 3D graphics and games. Microsoft Technical Report TR-2007-141. http://research.microsoft.com/research/pubs/view.aspx?tr_id=1384
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer Science+Business Media, LLC
About this chapter
Cite this chapter
Plesser, H.E. (2010). Generating Random Numbers. In: Grün, S., Rotter, S. (eds) Analysis of Parallel Spike Trains. Springer Series in Computational Neuroscience, vol 7. Springer, Boston, MA. https://doi.org/10.1007/978-1-4419-5675-0_19
Download citation
DOI: https://doi.org/10.1007/978-1-4419-5675-0_19
Publisher Name: Springer, Boston, MA
Print ISBN: 978-1-4419-5674-3
Online ISBN: 978-1-4419-5675-0
eBook Packages: Biomedical and Life SciencesBiomedical and Life Sciences (R0)