pXart

Packed Extensions for Advanced Random Techniques: C++ Header-Only Library and Applications for Fast Random Number Generators.
Get Started Go to GitHub

What is pXart?

pXart is a header-only library written in C++17 implementing vectorized pseudorandom number generators by using the SSE and AVX architecture of modern Intel processors. It is open-source and can be used on Linux, Windows, and MacOS.


Features

  • SSE4.1-Vectorized Pseudorandom Number Generation
  • AVX2-Vectorized Pseudorandom Number Generation
  • Scalar Pseudorandom Number Generation
  • Fast Uniform Distribution
  • Simple Interface and Modern API
  • Different PRNGs: MT19937, Xoroshiro128+, MSWS

Master's Thesis

Design and Implementation of Vectorized Pseudorandom Number Generators and their Application to Simulations of Photon Propagation

pXart was developed as part of a thesis. It makes it possible to improve the performance of physical simulations that need to use random numbers. The library consists of pseudorandom number generators exploiting the SSE and AVX instruction set facilities of modern Intel processors. For this, a new interface was created to simplify their initialization and usage. Through the implementation of appropriate benchmarks and the simulation of photon propagation it was shown that the vectorized generators could indeed accelerate the execution of randomized algorithms. Click the icon on the left to get a PDF version of the thesis.