dc.contributor.author | Leiserson, Charles E. | |
dc.contributor.author | Sukha, Jim | |
dc.contributor.author | Schardl, Tao Benjamin | |
dc.date.accessioned | 2016-01-19T18:37:33Z | |
dc.date.available | 2016-01-19T18:37:33Z | |
dc.date.issued | 2012-02 | |
dc.identifier.isbn | 9781450311601 | |
dc.identifier.uri | http://hdl.handle.net/1721.1/100926 | |
dc.description.abstract | Existing concurrency platforms for dynamic multithreading do not provide repeatable parallel random-number generators. This paper proposes that a mechanism called pedigrees be built into the runtime system to enable efficient deterministic parallel random-number generation. Experiments with the open-source MIT Cilk runtime system show that the overhead for maintaining pedigrees is negligible. Specifically, on a suite of 10 benchmarks, the relative overhead of Cilk with pedigrees to the original Cilk has a geometric mean of less than 1%.
We persuaded Intel to modify its commercial C/C++ compiler, which provides the Cilk Plus concurrency platform, to include pedigrees, and we built a library implementation of a deterministic parallel random-number generator called DotMix that compresses the pedigree and then "RC6-mixes" the result. The statistical quality of DotMix is comparable to that of the popular Mersenne twister, but somewhat slower than a nondeterministic parallel version of this efficient and high-quality serial random-number generator. The cost of calling DotMix depends on the "spawn depth" of the invocation. For a naive Fibonacci calculation with n=40 that calls DotMix in every node of the computation, this "price of determinism" is a factor of 2.65 in running time, but for more realistic applications with less intense use of random numbers -- such as a maximal-independent-set algorithm, a practical samplesort program, and a Monte Carlo discrete-hedging application from QuantLib -- the observed "price" was less than 5%. Moreover, even if overheads were several times greater, applications using DotMix should be amply fast for debugging purposes, which is a major reason for desiring repeatability. | en_US |
dc.description.sponsorship | National Science Foundation (U.S.) (Grant CNS-1017058) | en_US |
dc.description.sponsorship | National Science Foundation (U.S.). Graduate Research Fellowship | en_US |
dc.language.iso | en_US | |
dc.publisher | Association for Computing Machinery (ACM) | en_US |
dc.relation.isversionof | http://dx.doi.org/10.1145/2145816.2145841 | en_US |
dc.rights | Creative Commons Attribution-Noncommercial-Share Alike | en_US |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-sa/4.0/ | en_US |
dc.source | MIT web domain | en_US |
dc.title | Deterministic parallel random-number generation for dynamic-multithreading platforms | en_US |
dc.type | Article | en_US |
dc.identifier.citation | Charles E. Leiserson, Tao B. Schardl, and Jim Sukha. 2012. Deterministic parallel random-number generation for dynamic-multithreading platforms. In Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming (PPoPP '12). ACM, New York, NY, USA, 193-204. | en_US |
dc.contributor.department | Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory | en_US |
dc.contributor.department | Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science | en_US |
dc.contributor.mitauthor | Leiserson, Charles E. | en_US |
dc.contributor.mitauthor | Schardl, Tao Benjamin | en_US |
dc.contributor.mitauthor | Sukha, Jim | en_US |
dc.relation.journal | Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming (PPoPP '12) | en_US |
dc.eprint.version | Author's final manuscript | en_US |
dc.type.uri | http://purl.org/eprint/type/ConferencePaper | en_US |
eprint.status | http://purl.org/eprint/status/NonPeerReviewed | en_US |
dspace.orderedauthors | Leiserson, Charles E.; Schardl, Tao B.; Sukha, Jim | en_US |
dc.identifier.orcid | https://orcid.org/0000-0001-8783-0274 | |
dc.identifier.orcid | https://orcid.org/0000-0003-0198-3283 | |
mit.license | OPEN_ACCESS_POLICY | en_US |