Counter-based pseudorandom number generators for CORSIKA 8: A multi-thread friendly approach

18 May 2021, 15:26
13m
Short Talk Offline Computing Software

Speaker

Dr Antonio Augusto Alves Junior (Institute for Astroparticle Physics of Karlsruhe Institute of Technology)

Description

This document is devoted to the description of advances in the generation of high-quality random numbers for CORSIKA 8, which is being developed in modern C++17 and is designed to run on modern multi-thread processors and accelerators. CORSIKA 8 is a Monte Carlo simulation framework to model ultra-high energy secondary particle cascades in astroparticle physics. The aspects associated with the generation of high-quality random numbers on massively parallel platforms, like multi-core CPUs and GPUs, are reviewed and the deployment of counter-based engines using an innovative and multi-thread friendly API are described. The API is based on iterators providing a very well known access mechanism in C++, and also supports lazy evaluation. Moreover,an upgraded version of the Squares algorithm with highly efficient internal 128 as well as 256 bit counters is presented in this context. Performance measurements are provided, as well as comparisons with conventional designs are given. Finally, the integration into CORSIKA 8 is commented.

Primary authors

Dr Antonio Augusto Alves Junior (Institute for Astroparticle Physics of Karlsruhe Institute of Technology) Ralf Ulrich (Institute for Astroparticle Physics of Karlsruhe Institute of Technology) Anton Poctarev (Institute for Astroparticle Physics of Karlsruhe Institute of Technology)

Presentation materials

Proceedings

Paper