The development of GPU-based parallel PRNG for Monte Carlo applications in CUDA Fortran
Source abstract
Abstract
The implementation of Monte Carlo simulation on the CUDA Fortran requires a fast random number generation with good statistical properties on GPU. In this study, a GPU-based parallel pseudo random number generator (GPPRNG) have been proposed to use in high performance computing systems. According to the type of GPU memory usage, GPU scheme is divided into two work modes including GLOBAL_MODE and SHARED_MODE. To generate parallel random numbers based on the independent sequence method, the combination of middle-square method and chaotic map along with the Xorshift PRNG have been employed. Implementation of our developed PPRNG on a single GPU showed a speedup of 150x and 470x (with respect to the speed of PRNG on a single CPU core) for GLOBAL_MODE and SHARED_MODE, respectively. To evaluate the accuracy of our developed GPPRNG, its performance was compared to that of some other commercially available PPRNGs such as MATLAB, FORTRAN and Miller-Park algorithm through employing the specific standard tests. The results of this comparison showed that the developed GPPRNG in this study can be used as a fast and accurate tool for computational science applications.
Source: crossref · Quality: baseline
Research context
OpenAlex topics: Chaos-based Image/Signal Encryption · Computational Physics and Python Applications · Algorithms and Data Compression
SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.
Affiliations
Shahid Behesti University Department of nuclear engineering, , Tehran, 1983969411, Iran
References (22)
Show source-provided references
1. Wiley Interdiscip. Rev. Comput. Stat. · 2014 · 6 · 38610.1002/wics.1314 ↗
2. 1998
3. J. Comput. Phys. · 2013 · 254 · 2710.1016/j.jcp.2013.07.023 ↗
4. J. Fluids Eng. · 2005 · 127 · 116110.1115/1.2062807 ↗
5. J. Comput. Phys. · 2008 · 227 · 534210.1016/j.jcp.2008.01.047 ↗
6. “List of random number generators. '' [Online]. see: http://en.wikipedia.org/wiki/List_of_random_number_generators.
7. Math. Comput. Simul. · 2014 · 100 · 10310.1016/j.matcom.2014.02.002 ↗
8. Math. Comput. Simul. · 1997 · 44 · 9910.1016/S0378-4754(97)00052-9 ↗
9. 1998 · 28210.1145/277830.277895 ↗
10. SIAM News · 1999 · 32 · 221
11. Comput. Fluids · 2014 · 94 · 5810.1016/j.compfluid.2014.01.033 ↗
12. Comput. Phys. Commun. · 2015 · 187 · 16210.1016/j.cpc.2014.09.016 ↗
13. Comput. Phys. Commun. · 2010 · 1549
14. Comput. Sci. Eng. · 2012 · 14 · 810.1109/MCSE.2012.55 ↗
15. “CUDA CURAND Library, Nvidia CUDA Toolkits. '' [Online]. see: http://developer.nvidia.com/cuda-toolkit-65.
16. “PGI | Support | Release Information.” [Online]. see: https://www.pgroup.com/support/release.htm.
17. “Nvidia. '' [Online]. see: http://www.nvidia.com.
18. “Tuning a Monte Carlo Algorithm on GPUs. '' [Online]. see: http://www.pgroup.com/lit/articles/insider/v2n1a4.htm.
19. J. Stat. Softw. · 2003 · 8 · 1
20. 2007
21. “National Institute of Standards and Technology. '' [Online]. see: http://www.csrc.nist.gov/publications/nistpubs/800-22-rev1a/SP800-22rev1a.pdf.
22. Commun. ACM · 1988 · 1192