Using graphics processing units to generate random numbers
Ecole polytechnique de Montreal, Departement de genie informatique et genie logiciel, 2500 chemin de Polytechnique. Montreal (Quebec), CANADA H3T 1J4
arXiv:1101.1846 [cs.DC] (10 Jan 2011)
@article{2011arXiv1101.1846H,
author={Hissoiny}, S. and {Despr{‘e}s}, P. and {Ozell}, B.},
title={“{Using graphics processing units to generate random numbers}”},
journal={ArXiv e-prints},
archivePrefix={“arXiv”},
eprint={1101.1846},
primaryClass={“cs.DC”},
keywords={Computer Science – Distributed, Parallel, and Cluster Computing},
year={2011},
month={jan},
adsurl={http://adsabs.harvard.edu/abs/2011arXiv1101.1846H},
adsnote={Provided by the SAO/NASA Astrophysics Data System}
}
The future of high-performance computing is aligning itself towards the efficient use of highly parallel computing environments. One application where the use of massive parallelism comes instinctively is Monte Carlo simulations, where a large number of independent events have to be simulated. At the core of the Monte Carlo simulation lies the Random Number Generator (RNG). In this paper, the massively parallel implementation of a collection of pseudo-random number generators on a graphics processing unit (GPU) is presented. The results of the GPU implementation, in terms of samples/s, effective bandwidth and operations per second, are presented. A comparison with other implementations on different hardware platforms, in terms of samples/s, power efficiency and cost-benefit, is also presented. Random numbers generation throughput of up to ~18MSamples/s have been achieved on the graphics hardware used. Efficient hardware utilization, in terms of operations per second, has reached ~98% of the possible integer operation throughput.
January 12, 2011 by hgpu