Results 1  10
of
59
TestU01: A C library for empirical testing of random number generators
 ACM TRANSACTIONS ON MATHEMATICAL SOFTWARE
, 2007
"... We introduce TestU01, a software library implemented in the ANSI C language, and offering a collection of utilities for the empirical statistical testing of uniform random number generators (RNGs). It provides general implementations of the classical statistical tests for RNGs, as well as several ot ..."
Abstract

Cited by 85 (3 self)
 Add to MetaCart
We introduce TestU01, a software library implemented in the ANSI C language, and offering a collection of utilities for the empirical statistical testing of uniform random number generators (RNGs). It provides general implementations of the classical statistical tests for RNGs, as well as several others tests proposed in the literature, and some original ones. Predefined tests suites for sequences of uniform random numbers over the interval (0, 1) and for bit sequences are available. Tools are also offered to perform systematic studies of the interaction between a specific test and the structure of the point sets produced by a given family of RNGs. That is, for a given kind of test and a given class of RNGs, to determine how large should be the sample size of the test, as a function of the generator’s period length, before the generator starts to fail the test systematically. Finally, the library provides various types of generators implemented in generic form, as well as many specific generators proposed in the literature or found in widelyused software. The tests can be applied to instances of the generators predefined in the library, or to userdefined generators, or to streams of random numbers produced by any kind of device or stored in files. Besides introducing TestU01, the paper provides a survey and a classification of statistical tests for RNGs. It also applies batteries of tests to a long list of widely used RNGs.
SIMDoriented fast Mersenne twister: A 128bit pseudorandom number generator
 and QuasiMonte Carlo Methods 2006
, 2007
"... Summary. Mersenne Twister (MT) is a widelyused fast pseudorandom number generator (PRNG) with a long period of 2 19937 − 1, designed 10 years ago based on 32bit operations. In this decade, CPUs for personal computers have acquired new features, such as Single Instruction Multiple Data (SIMD) opera ..."
Abstract

Cited by 47 (4 self)
 Add to MetaCart
(Show Context)
Summary. Mersenne Twister (MT) is a widelyused fast pseudorandom number generator (PRNG) with a long period of 2 19937 − 1, designed 10 years ago based on 32bit operations. In this decade, CPUs for personal computers have acquired new features, such as Single Instruction Multiple Data (SIMD) operations (i.e., 128bit operations) and multistage pipelines. Here we propose a 128bit based PRNG, named SIMDoriented Fast Mersenne Twister (SFMT), which is analogous to MT but making full use of these features. Its recursion fits pipeline processing better than MT, and it is roughly twice as fast as optimised MT using SIMD operations. Moreover, the dimension of equidistribution of SFMT is better than MT. We also introduce a blockgeneration function, which fills an array of 32bit integers in one call. It speeds up the generation by a factor of two. A speed comparison with other modern generators, such as multiplicative recursive generators, shows an advantage of SFMT. The implemented Ccodes are downloadable from
High Quality Uniform Random Number Generation Through LUT Optimised Linear Recurrences
"... This paper describes a class of FPGAspecific uniform random number generators with a 2 k − 1 length period, which can provide k random bits percycle for the cost of k Lookup Tables (LUTs) and k flipflops. The generator is based on a binary linear recurrence, but with a recurrence matrix optimised ..."
Abstract

Cited by 32 (18 self)
 Add to MetaCart
(Show Context)
This paper describes a class of FPGAspecific uniform random number generators with a 2 k − 1 length period, which can provide k random bits percycle for the cost of k Lookup Tables (LUTs) and k flipflops. The generator is based on a binary linear recurrence, but with a recurrence matrix optimised for LUT based architectures. It avoids many of the problems and inefficiencies associated with LFSRs and Tausworthe generators, while retaining the ability to efficiently skip ahead in the sequence. In particular we show that this class of generators produce the highest sample rate for a given area compared to LFSR and Tausworthe generators. The statistical quality of this type of generators is very good, and can be used to create small and fast generators with long periods which pass all common empirical tests, such as Diehard, Crush, BigCrush and the NIST cryptographic tests. 1.
On the Xorshift random number generators
"... G. Marsaglia introduced recently a class of very fast xorshift random number generators, whose implementation uses three “xorshift ” operations. They belong to a large family of generators based on linear recurrences modulo 2, which also includes shiftregister generators, the Mersenne twister, and ..."
Abstract

Cited by 27 (3 self)
 Add to MetaCart
G. Marsaglia introduced recently a class of very fast xorshift random number generators, whose implementation uses three “xorshift ” operations. They belong to a large family of generators based on linear recurrences modulo 2, which also includes shiftregister generators, the Mersenne twister, and several others. In this paper, we analyze the theoretical properties of xorshift generators, search for the best ones with respect to the equidistribution criterion, and test them empirically. We find that the vast majority of xorshift generators with only three xorshift operations, including those having good equidistribution, fail several simple statistical tests. We also discuss generators with more than three xorshifts.
A Comparison of CPUs, GPUs, FPGAs, and Massively Parallel Processor Arrays for Random Number Generation
"... The future of highperformance computing is likely to rely on the ability to efficiently exploit huge amounts of parallelism. One way of taking advantage of this parallelism is to formulate problems as “embarrassingly parallel ” MonteCarlo simulations, which allow applications to achieve a linear s ..."
Abstract

Cited by 23 (1 self)
 Add to MetaCart
(Show Context)
The future of highperformance computing is likely to rely on the ability to efficiently exploit huge amounts of parallelism. One way of taking advantage of this parallelism is to formulate problems as “embarrassingly parallel ” MonteCarlo simulations, which allow applications to achieve a linear speedup over multiple computational nodes, without requiring a superlinear increase in internode communication. However, such applications are reliant on a cheap supply of high quality random numbers, particularly for the three main maximum entropy distributions: uniform, used as a general source of randomness; Gaussian, for discretetime simulations; and exponential, for discreteevent simulations. In this paper we look at four different types of platform: conventional multicore CPUs (Intel Core2); GPUs (NVidia
Efficient jump ahead for F2linear random number generators
, 2006
"... The fastest longperiod random number generators currently available are based on linear recurrences modulo 2. So far, software that provides multiple disjoint streams and substreams has not been available for these generators because of the lack of efficient jumpahead facilities. In principle, i ..."
Abstract

Cited by 16 (2 self)
 Add to MetaCart
The fastest longperiod random number generators currently available are based on linear recurrences modulo 2. So far, software that provides multiple disjoint streams and substreams has not been available for these generators because of the lack of efficient jumpahead facilities. In principle, it suffices to multiply the state (a kbit vector) by an appropriate k × k binary matrix to find the new state far ahead in the sequence. However, when k is large (e.g., for a generator such as the popular Mersenne twister, for which k = 19937), this matrixvector multiplication is slow and a large amount of memory is required to store the k × k matrix. In this paper, we provide a faster algorithm to jump ahead by a large number of steps in a linear recurrence modulo 2. The method uses much less than the k 2 bits of memory required by the matrix method. It is based on polynomial calculus modulo the characteristic polynomial of the recurrence and uses a sliding window algorithm for the multiplication. Key words: simulation; random number generation; jumping ahead; multiple streams 1.
Variants of Mersenne Twister Suitable for Graphic Processors
 ACM Trans. on Math. Softw
, 2013
"... ar ..."
(Show Context)
An application of finite field: Design and implementation of 128bit instructionbased fast pseudorandom number generator
, 2007
"... (1) SIMDoriented Mersenne Twister (SFMT) is a new pseudorandom number generator (PRNG) which uses 128bit Single Instruction Multiple Data (SIMD) operations. SFMT is designed and implemented on C language with SIMD extensions and also implemented on standard C without SIMD. (2) Properties of SFMT a ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
(Show Context)
(1) SIMDoriented Mersenne Twister (SFMT) is a new pseudorandom number generator (PRNG) which uses 128bit Single Instruction Multiple Data (SIMD) operations. SFMT is designed and implemented on C language with SIMD extensions and also implemented on standard C without SIMD. (2) Properties of SFMT are studied by using finite field theories, and they are shown to be equal or better than Mersenne Twister (MT), which is a widely used PRNG. (3) Generation speed of SFMT is measured on Intel Pentium M, Pentium IV, AMD Athlon 64 and PowerPC G4. It is shown to be about two times faster than MT implemented using SIMD. 1
The LUTSR Family of Uniform Random Number Generators for FPGA Architectures
"... Abstract — Fieldprogrammable gate array (FPGA) optimized random number generators (RNGs) are more resourceefficient than softwareoptimized RNGs because they can take advantage of bitwise operations and FPGAspecific features. However, it is difficult to concisely describe FPGAoptimized RNGs, so ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
(Show Context)
Abstract — Fieldprogrammable gate array (FPGA) optimized random number generators (RNGs) are more resourceefficient than softwareoptimized RNGs because they can take advantage of bitwise operations and FPGAspecific features. However, it is difficult to concisely describe FPGAoptimized RNGs, so they are not commonly used in realworld designs. This paper describes a type of FPGA RNG called a LUTSR RNG, which takes advantage of bitwise XOR operations and the ability to turn lookup tables (LUTs) into shift registers of varying lengths. This provides a good resource–quality balance compared to previous FPGAoptimized generators, between the previous highresource highperiod LUTFIFO RNGs and lowresource lowquality LUTOPT RNGs, with quality comparable to the best software generators. The LUTSR generators can also be expressed using asimpleC++ algorithm contained within this paper, allowing 60 fullyspecified LUTSR RNGs with different characteristics to be embedded in this paper, backed up by an online set of very high speed integrated circuit hardware description language (VHDL) generators and test benches. Index Terms — Equidistribution, fieldprogrammable gate array (FPGA), uniform random number generator (RNG).