28717

OpenRAND: A Performance Portable, Reproducible Random Number Generation Library for Parallel Computations

Shihab Shahriar Khan, Bryce Palmer, Christopher Edelmaierd, Hasan Metin Aktulga
Dept. of Computer Science, Michigan State University, East Lansing, MI 48824
arXiv:2310.19925 [cs.DC], (30 Oct 2023)

@misc{khan2023openrand,

   title={OpenRAND: A Performance Portable, Reproducible Random Number Generation Library for Parallel Computations},

   author={Shihab Shahriar Khan and Bryce Palmer and Christopher Edelmaierd and Hasan Metin Aktulga},

   year={2023},

   eprint={2310.19925},

   archivePrefix={arXiv},

   primaryClass={cs.DC}

}

We introduce OpenRAND, a C++17 library aimed at facilitating reproducible scientific research through the generation of statistically robust and yet replicable random numbers. OpenRAND accommodates single and multi-threaded applications on CPUs and GPUs and offers a simplified, user-friendly API that complies with the C++ standard’s random number engine interface. It is portable: it functions seamlessly as a lightweight, header-only library, making it adaptable to a wide spectrum of software and hardware platforms. It is statistically robust: a suite of built-in tests ensures no pattern exists within single or multiple streams. Despite the simplicity and portability, it is remarkably performant-matching and sometimes even outperforming native libraries by a significant margin. Our tests, including a Brownian walk simulation, affirm its reproducibility and highlight its computational efficiency, outperforming CUDA’s cuRAND by up to 1.8 times.
No votes yet.
Please wait...

* * *

* * *

HGPU group © 2010-2024 hgpu.org

All rights belong to the respective authors

Contact us: