Skip to article frontmatterSkip to article content

Ranx

A Modern C++ Parallel Random Number Generator

GitHub Release License: MIT Binder


Ranx is a next-generation parallel algorithmic (pseudo) random number generator available as both a utility, as well as a modern header-only C++ library supporting OpenMP, CUDA, ROCm and oneAPI.

As a library, Ranx provides alternatives to STLโ€™s std::generate() family of algorithms that exclusively designed for parallel random number generation on CPUs and GPUs.


Features at a Glance ๐Ÿ”ฎยถ

๐Ÿงฎ Support both CPU and GPU

Ranx uses block splitting and leapfrog algorithms for parallel random number generation on CPU and GPU, respectively.

๐ŸŽฒ Play fair

Using the same seed, Ranx always generates the same sequence, independent of the number of parallel threads and the underlying hardware on all platforms.


Key Features ๐Ÿฅ‡ยถ