ThreadLocalMRG32k3a: A statistically sound substitute to pseudorandom number generation in parallel Java applications

Jonathan Passerat-Palmbach, C. Mazel, D. Hill
{"title":"ThreadLocalMRG32k3a: A statistically sound substitute to pseudorandom number generation in parallel Java applications","authors":"Jonathan Passerat-Palmbach, C. Mazel, D. Hill","doi":"10.1109/HPCSim.2012.6266971","DOIUrl":null,"url":null,"abstract":"Parallel And Distributed Simulations (PADS) become more and more spread since scientists always want more accurate results in the shortest time. PADS are often sensitive to several parameters, and when they own a stochastic component, one has to ensure he knows how to correctly deal with randomness in a parallel application. This point can appear to be very tricky for non-experts, who might be tempted to move this part of the simulation aside. Several software efforts have been produced in various programming languages to help developers handle pseudorandom streams partitioning in PADS. However, these tools remain third-party libraries that need to be integrated in already existing applications, and that might be hardly swappable. The latest release of the Java Development Kit (JDK 7) tries to tackle this problem with a new class called ThreadLocalRandom. The latter is in charge of safe pseudorandom number generation across Java threads. The present work studies the pros and cons of this approach, and introduces ThreadLocalMRG32k3a, an alternative to ThreadLocalRandom that shows better results in terms of generation speed and statistical quality. ThreadLocalMRG32k3a respects the same Application Programming Interface (API) as ThreadLocalRandom, thus enabling clients to use it in place of its JDK counterpart at no cost.","PeriodicalId":428764,"journal":{"name":"2012 International Conference on High Performance Computing & Simulation (HPCS)","volume":"624 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2012-07-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"4","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2012 International Conference on High Performance Computing & Simulation (HPCS)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/HPCSim.2012.6266971","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 4

Abstract

Parallel And Distributed Simulations (PADS) become more and more spread since scientists always want more accurate results in the shortest time. PADS are often sensitive to several parameters, and when they own a stochastic component, one has to ensure he knows how to correctly deal with randomness in a parallel application. This point can appear to be very tricky for non-experts, who might be tempted to move this part of the simulation aside. Several software efforts have been produced in various programming languages to help developers handle pseudorandom streams partitioning in PADS. However, these tools remain third-party libraries that need to be integrated in already existing applications, and that might be hardly swappable. The latest release of the Java Development Kit (JDK 7) tries to tackle this problem with a new class called ThreadLocalRandom. The latter is in charge of safe pseudorandom number generation across Java threads. The present work studies the pros and cons of this approach, and introduces ThreadLocalMRG32k3a, an alternative to ThreadLocalRandom that shows better results in terms of generation speed and statistical quality. ThreadLocalMRG32k3a respects the same Application Programming Interface (API) as ThreadLocalRandom, thus enabling clients to use it in place of its JDK counterpart at no cost.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
ThreadLocalMRG32k3a:在并行Java应用程序中,一个统计上可靠的伪随机数生成替代品
由于科学家们总是希望在最短的时间内得到更准确的结果,并行和分布式仿真(PADS)越来越普及。PADS通常对几个参数很敏感,当它们拥有随机组件时,必须确保知道如何正确处理并行应用程序中的随机性。对于非专家来说,这一点似乎非常棘手,他们可能会试图将模拟的这一部分移到一边。已经用各种编程语言开发了一些软件,以帮助开发人员处理PADS中的伪随机流分区。然而,这些工具仍然是第三方库,需要集成到已经存在的应用程序中,并且可能很难进行交换。最新版本的Java开发工具包(JDK 7)试图通过一个名为ThreadLocalRandom的新类来解决这个问题。后者负责跨Java线程安全生成伪随机数。本文研究了这种方法的优缺点,并介绍了ThreadLocalMRG32k3a,这是ThreadLocalRandom的替代方案,在生成速度和统计质量方面显示出更好的结果。ThreadLocalMRG32k3a遵循与ThreadLocalRandom相同的应用程序编程接口(API),因此客户端可以免费使用它来代替对应的JDK。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Adaptive energy-efficient task partitioning for heterogeneous multi-core multiprocessor real-time systems An approach for customizing on-chip interconnect architectures in SoC design An energy consumption model for Energy Efficient Ethernet switches Bid writing: Is project management different? What is appropriate? Simulation of the release and diffusion of neurotransmitters in neuronal synapses: Analysis and modelling
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1