Computational Science Technical Note CSTN-103

Speed and Portability issues for Random Number Generation on Graphical Processing Units with CUDA and other Processing Accelerators

K.A.Hawick, A.Leist, D.P.Playne and M.J.Johnson

Archived November 2009, Revised August 2010.

Abstract

Generating quality random numbers is a performance-critical application for many scientific simulations. Modern processing acceleration techniques such as: graphical co-processing units(GPUs), multi-core conventional CPUs; special purpose multi-core CPUs; and parallel computing approaches such as multi-threading on shared memory or message passing on clusters, all offer ways to speed up random number generation (RNG). Providing fast generators that are also portable across hardware and software platforms is non-trivial however, particularly since many of the powerful devices available at present do not yet support full 64-bit operations upon which many good RNG algorithms rely. We report performance data for a range of common RNG algorithms on devices including: GPUs; CellBE; multicore CPUs; and hybrids, and discuss algorithmic and implementation issues.

Keywords: Monte-Carlo simulation; random number generation; seed management; configuration management; portability.

Full Document Text: PDF version.

Citation Information: To appear in 9th Australasian Symposium on Parallel and Distributed Computing (AusPDC 2011), Perth, Australia. Conferences in Research and Practice in Information Technology (CRPIT), Vol. 118, J. Chen and R. Ranjan, Ed.


[ CSTN Index ]