The VS component of oneMKL contains a set of generators to create general probability distributions, most commonly used in simulations, such as uniform, normal (Gaussian), exponential, or Poisson. Non-uniform distributions are generated using various transformation techniques applied to the output of a basic (pseudo-random, quasi-random, or non-deterministic) number generators.
To generate random numbers of a given probability distribution, you can either choose one of the available VS BRNGs or register your own BRNG. To enhance their performance, all VS BRNGs are highly optimized for various architectures of Intel® processors. Besides, VS provides a number of different techniques for transforming uniformly distributed random numbers into a sequence of required distribution.
All VS RNGs are of vector type. Unlike scalar type generators that return a successive random number, vector generators produce a vector of
successive random numbers of a given distribution with given parameters.
VS is a thread-safe, convenient for parallel computing, with a variety of configurations of parallel systems. A random stream is a notion in the RNG subcomponent of VS. A mechanism of streams provides simultaneous generation of several random number sequences produced by one or more BRNGs, as well as splitting of the original sequence into several subsequences by the leapfrog and block-split methods. Several random streams are particularly useful not only in parallel applications but in sequential programs as well.