CT-PRNG Documentation

The CLUSTERTECH Parallel Random Number Generator (CT-PRNG) is based on Mersenne Twister, which has period 219937 - 1. Using a jump-ahead algorithm, CT-PRNG generates multiple independent streams of random numbers simultaneously across one or more GPUs.

design.jpg

For many parallel RNGs, a user has to provide distinct seeds for initialisation. Since there is no guarantee on the distance between the starting positions, parallel streams may overlap after a short period of time (e.g., minutes) [left figure].

From a single user-supplied seed, our implementation calculates the starting position of each stream by means of a fast jump-ahead algorithm. This guarantees that any two adjacent starting positions are separated by D random numbers. When D is large, say, 2100, these streams will never overlap in any practical time frame [right figure].

Currently, CT-PRNG supports uniform, Bernoulli, geometric, exponential, normal and lognormal distributions.

Requirements

Installation on UNIX

Quick Start

References

License


Generated on Thu Feb 11 15:37:47 2010 for ctprng by  doxygen 1.6.1