OpenRAND: A Performance Portable, Reproducible Random Number Generation Library for Parallel Computations
We introduce OpenRAND, a C++17 library aimed at facilitating reproducible scientific research through the generation of statistically robust and yet replicable random numbers. OpenRAND accommodates single and multi-threaded applications on CPUs and GPUs and offers a simplified, user-friendly API tha...
Gespeichert in:
Hauptverfasser: | , , , |
---|---|
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
container_end_page | |
---|---|
container_issue | |
container_start_page | |
container_title | |
container_volume | |
creator | Khan, Shihab Shahriar Palmer, Bryce Edelmaierd, Christopher Aktulga, Hasan Metin |
description | We introduce OpenRAND, a C++17 library aimed at facilitating reproducible
scientific research through the generation of statistically robust and yet
replicable random numbers. OpenRAND accommodates single and multi-threaded
applications on CPUs and GPUs and offers a simplified, user-friendly API that
complies with the C++ standard's random number engine interface. It is
portable: it functions seamlessly as a lightweight, header-only library, making
it adaptable to a wide spectrum of software and hardware platforms. It is
statistically robust: a suite of built-in tests ensures no pattern exists
within single or multiple streams. Despite the simplicity and portability, it
is remarkably performant-matching and sometimes even outperforming native
libraries by a significant margin. Our tests, including a Brownian walk
simulation, affirm its reproducibility and highlight its computational
efficiency, outperforming CUDA's cuRAND by up to 1.8 times. |
doi_str_mv | 10.48550/arxiv.2310.19925 |
format | Article |
fullrecord | <record><control><sourceid>arxiv_GOX</sourceid><recordid>TN_cdi_arxiv_primary_2310_19925</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2310_19925</sourcerecordid><originalsourceid>FETCH-LOGICAL-a675-11aa4ffcb94db37c66718633bb6be01ea7ac4c4fc728b081956cb60868aded1a3</originalsourceid><addsrcrecordid>eNotj0FPhDAUhHvxYFZ_gCf7A2SlFErxRlBXE7JLyN7Ja3kkTYCSt2D034u4p8lMJpP5GHsQ4T7WSRI-A327r30k10BkWZTcMneacKzz4-sLz3mF1HkaYLTIK08zmB6feI0T-XaxbnW8hrH1Az8ug0HiBxyRYHZ-5KUzBPTD1wFeAUHfY88LP0zLvBUud-ymg_6C91fdsfP727n4CMrT4bPIywBUmgRCAMRdZ00Wt0amVqlUaCWlMcpgKBBSsLGNO5tG2oRaZImyRoVaaWixFSB37PF_dmNtJnLDeqv5Y242ZvkL5xFTFg</addsrcrecordid><sourcetype>Open Access Repository</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype></control><display><type>article</type><title>OpenRAND: A Performance Portable, Reproducible Random Number Generation Library for Parallel Computations</title><source>arXiv.org</source><creator>Khan, Shihab Shahriar ; Palmer, Bryce ; Edelmaierd, Christopher ; Aktulga, Hasan Metin</creator><creatorcontrib>Khan, Shihab Shahriar ; Palmer, Bryce ; Edelmaierd, Christopher ; Aktulga, Hasan Metin</creatorcontrib><description>We introduce OpenRAND, a C++17 library aimed at facilitating reproducible
scientific research through the generation of statistically robust and yet
replicable random numbers. OpenRAND accommodates single and multi-threaded
applications on CPUs and GPUs and offers a simplified, user-friendly API that
complies with the C++ standard's random number engine interface. It is
portable: it functions seamlessly as a lightweight, header-only library, making
it adaptable to a wide spectrum of software and hardware platforms. It is
statistically robust: a suite of built-in tests ensures no pattern exists
within single or multiple streams. Despite the simplicity and portability, it
is remarkably performant-matching and sometimes even outperforming native
libraries by a significant margin. Our tests, including a Brownian walk
simulation, affirm its reproducibility and highlight its computational
efficiency, outperforming CUDA's cuRAND by up to 1.8 times.</description><identifier>DOI: 10.48550/arxiv.2310.19925</identifier><language>eng</language><subject>Computer Science - Distributed, Parallel, and Cluster Computing</subject><creationdate>2023-10</creationdate><rights>http://creativecommons.org/licenses/by/4.0</rights><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>228,230,776,881</link.rule.ids><linktorsrc>$$Uhttps://arxiv.org/abs/2310.19925$$EView_record_in_Cornell_University$$FView_record_in_$$GCornell_University$$Hfree_for_read</linktorsrc><backlink>$$Uhttps://doi.org/10.48550/arXiv.2310.19925$$DView paper in arXiv$$Hfree_for_read</backlink></links><search><creatorcontrib>Khan, Shihab Shahriar</creatorcontrib><creatorcontrib>Palmer, Bryce</creatorcontrib><creatorcontrib>Edelmaierd, Christopher</creatorcontrib><creatorcontrib>Aktulga, Hasan Metin</creatorcontrib><title>OpenRAND: A Performance Portable, Reproducible Random Number Generation Library for Parallel Computations</title><description>We introduce OpenRAND, a C++17 library aimed at facilitating reproducible
scientific research through the generation of statistically robust and yet
replicable random numbers. OpenRAND accommodates single and multi-threaded
applications on CPUs and GPUs and offers a simplified, user-friendly API that
complies with the C++ standard's random number engine interface. It is
portable: it functions seamlessly as a lightweight, header-only library, making
it adaptable to a wide spectrum of software and hardware platforms. It is
statistically robust: a suite of built-in tests ensures no pattern exists
within single or multiple streams. Despite the simplicity and portability, it
is remarkably performant-matching and sometimes even outperforming native
libraries by a significant margin. Our tests, including a Brownian walk
simulation, affirm its reproducibility and highlight its computational
efficiency, outperforming CUDA's cuRAND by up to 1.8 times.</description><subject>Computer Science - Distributed, Parallel, and Cluster Computing</subject><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2023</creationdate><recordtype>article</recordtype><sourceid>GOX</sourceid><recordid>eNotj0FPhDAUhHvxYFZ_gCf7A2SlFErxRlBXE7JLyN7Ja3kkTYCSt2D034u4p8lMJpP5GHsQ4T7WSRI-A327r30k10BkWZTcMneacKzz4-sLz3mF1HkaYLTIK08zmB6feI0T-XaxbnW8hrH1Az8ug0HiBxyRYHZ-5KUzBPTD1wFeAUHfY88LP0zLvBUud-ymg_6C91fdsfP727n4CMrT4bPIywBUmgRCAMRdZ00Wt0amVqlUaCWlMcpgKBBSsLGNO5tG2oRaZImyRoVaaWixFSB37PF_dmNtJnLDeqv5Y242ZvkL5xFTFg</recordid><startdate>20231030</startdate><enddate>20231030</enddate><creator>Khan, Shihab Shahriar</creator><creator>Palmer, Bryce</creator><creator>Edelmaierd, Christopher</creator><creator>Aktulga, Hasan Metin</creator><scope>AKY</scope><scope>GOX</scope></search><sort><creationdate>20231030</creationdate><title>OpenRAND: A Performance Portable, Reproducible Random Number Generation Library for Parallel Computations</title><author>Khan, Shihab Shahriar ; Palmer, Bryce ; Edelmaierd, Christopher ; Aktulga, Hasan Metin</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a675-11aa4ffcb94db37c66718633bb6be01ea7ac4c4fc728b081956cb60868aded1a3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2023</creationdate><topic>Computer Science - Distributed, Parallel, and Cluster Computing</topic><toplevel>online_resources</toplevel><creatorcontrib>Khan, Shihab Shahriar</creatorcontrib><creatorcontrib>Palmer, Bryce</creatorcontrib><creatorcontrib>Edelmaierd, Christopher</creatorcontrib><creatorcontrib>Aktulga, Hasan Metin</creatorcontrib><collection>arXiv Computer Science</collection><collection>arXiv.org</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Khan, Shihab Shahriar</au><au>Palmer, Bryce</au><au>Edelmaierd, Christopher</au><au>Aktulga, Hasan Metin</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>OpenRAND: A Performance Portable, Reproducible Random Number Generation Library for Parallel Computations</atitle><date>2023-10-30</date><risdate>2023</risdate><abstract>We introduce OpenRAND, a C++17 library aimed at facilitating reproducible
scientific research through the generation of statistically robust and yet
replicable random numbers. OpenRAND accommodates single and multi-threaded
applications on CPUs and GPUs and offers a simplified, user-friendly API that
complies with the C++ standard's random number engine interface. It is
portable: it functions seamlessly as a lightweight, header-only library, making
it adaptable to a wide spectrum of software and hardware platforms. It is
statistically robust: a suite of built-in tests ensures no pattern exists
within single or multiple streams. Despite the simplicity and portability, it
is remarkably performant-matching and sometimes even outperforming native
libraries by a significant margin. Our tests, including a Brownian walk
simulation, affirm its reproducibility and highlight its computational
efficiency, outperforming CUDA's cuRAND by up to 1.8 times.</abstract><doi>10.48550/arxiv.2310.19925</doi><oa>free_for_read</oa></addata></record> |
fulltext | fulltext_linktorsrc |
identifier | DOI: 10.48550/arxiv.2310.19925 |
ispartof | |
issn | |
language | eng |
recordid | cdi_arxiv_primary_2310_19925 |
source | arXiv.org |
subjects | Computer Science - Distributed, Parallel, and Cluster Computing |
title | OpenRAND: A Performance Portable, Reproducible Random Number Generation Library for Parallel Computations |
url | https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-02-13T21%3A12%3A35IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-arxiv_GOX&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=OpenRAND:%20A%20Performance%20Portable,%20Reproducible%20Random%20Number%20Generation%20Library%20for%20Parallel%20Computations&rft.au=Khan,%20Shihab%20Shahriar&rft.date=2023-10-30&rft_id=info:doi/10.48550/arxiv.2310.19925&rft_dat=%3Carxiv_GOX%3E2310_19925%3C/arxiv_GOX%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true |