Cargando…
A Portable Implementation of RANLUX++
High energy physics has a constant demand for random number generators (RNGs) with high statistical quality. In this paper, we present ROOT’s implementation of the RANLUX++ generator. We discuss the choice of relying only on standard C++ for portability reasons. Building on an initial implementation...
Autores principales: | , |
---|---|
Lenguaje: | eng |
Publicado: |
2021
|
Materias: | |
Acceso en línea: | https://dx.doi.org/10.1051/epjconf/202125103008 http://cds.cern.ch/record/2775802 |
_version_ | 1780971593114058752 |
---|---|
author | Hahnfeld, Jonas Moneta, Lorenzo |
author_facet | Hahnfeld, Jonas Moneta, Lorenzo |
author_sort | Hahnfeld, Jonas |
collection | CERN |
description | High energy physics has a constant demand for random number generators (RNGs) with high statistical quality. In this paper, we present ROOT’s implementation of the RANLUX++ generator. We discuss the choice of relying only on standard C++ for portability reasons. Building on an initial implementation, we describe a set of optimizations to increase generator speed. This allows to reach performance very close to the original assembler version. We test our implementation on an Apple M1 and Nvidia GPUs to demonstrate the advantages of portable code. |
id | cern-2775802 |
institution | Organización Europea para la Investigación Nuclear |
language | eng |
publishDate | 2021 |
record_format | invenio |
spelling | cern-27758022023-01-31T08:00:51Zdoi:10.1051/epjconf/202125103008http://cds.cern.ch/record/2775802engHahnfeld, JonasMoneta, LorenzoA Portable Implementation of RANLUX++physics.comp-phOther Fields of PhysicsHigh energy physics has a constant demand for random number generators (RNGs) with high statistical quality. In this paper, we present ROOT’s implementation of the RANLUX++ generator. We discuss the choice of relying only on standard C++ for portability reasons. Building on an initial implementation, we describe a set of optimizations to increase generator speed. This allows to reach performance very close to the original assembler version. We test our implementation on an Apple M1 and Nvidia GPUs to demonstrate the advantages of portable code.High energy physics has a constant demand for random number generators (RNGs) with high statistical quality. In this paper, we present ROOT's implementation of the RANLUX++ generator. We discuss the choice of relying only on standard C++ for portability reasons. Building on an initial implementation, we describe a set of optimizations to increase generator speed. This allows to reach performance very close to the original assembler version. We test our implementation on an Apple M1 and Nvidia GPUs to demonstrate the advantages of portable code.arXiv:2106.02504oai:cds.cern.ch:27758022021 |
spellingShingle | physics.comp-ph Other Fields of Physics Hahnfeld, Jonas Moneta, Lorenzo A Portable Implementation of RANLUX++ |
title | A Portable Implementation of RANLUX++ |
title_full | A Portable Implementation of RANLUX++ |
title_fullStr | A Portable Implementation of RANLUX++ |
title_full_unstemmed | A Portable Implementation of RANLUX++ |
title_short | A Portable Implementation of RANLUX++ |
title_sort | portable implementation of ranlux++ |
topic | physics.comp-ph Other Fields of Physics |
url | https://dx.doi.org/10.1051/epjconf/202125103008 http://cds.cern.ch/record/2775802 |
work_keys_str_mv | AT hahnfeldjonas aportableimplementationofranlux AT monetalorenzo aportableimplementationofranlux AT hahnfeldjonas portableimplementationofranlux AT monetalorenzo portableimplementationofranlux |