Mersenne Twister random number generation on FPGA, CPU and GPU

42Citations
Citations of this article
44Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Random number generation is a very important operation in computational science e.g. in Monte Carlo simulations methods. It is also a computationally intensive operation especially for high quality random number generation. In this paper, we present the design and implementation of a parallel implementation of one of the most widely used random number generators, namely the Mersenne Twister. The latter is very widely used in high performance computing applications such as financial computing. Implementations of our parallel Mersenne Twister number generator core on Xilinx Virtex4 FPGAs achieve a throughput of 26.13 billion random samples per second. The paper also reports equivalent parallel software implementations running on an Intel Core 2 Quad Q9300 CPU with 8 GB RAM, using multi-threading technology and the Intel® Math Kernel Library (MKL), as well as on an NVIDIA 8800 GTX GPU. Comparative results show that our FPGA-based implementation outperforms equivalent CPU and GPU implementations by ∼25x and ∼9x respectively. Moreover, when using the same amount of energy, the FPGA can generate 37x and 35x more Mersenne Twister random samples than the CPU and the GPU, respectively. © 2009 IEEE.

Cite

CITATION STYLE

APA

Tian, X., & Benkrid, K. (2009). Mersenne Twister random number generation on FPGA, CPU and GPU. In Proceedings - 2009 NASA/ESA Conference on Adaptive Hardware and Systems, AHS 2009 (pp. 460–464). https://doi.org/10.1109/AHS.2009.11

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free