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...

Descripción completa

Detalles Bibliográficos
Autores principales: Hahnfeld, Jonas, Moneta, Lorenzo
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