Deterministic parallel random-number generation for dynamic-multithreading platforms

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

Full description

Bibliographic Details
Main Authors: Leiserson, Charles E. (Contributor), Sukha, Jim (Contributor), Schardl, Tao Benjamin (Contributor)
Other Authors: Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory (Contributor), Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science (Contributor)
Format: Article
Language:English
Published: Association for Computing Machinery (ACM), 2016-01-19T18:37:33Z.
Subjects:
Online Access:Get fulltext
LEADER 02905 am a22002533u 4500
001 100926
042 |a dc 
100 1 0 |a Leiserson, Charles E.  |e author 
100 1 0 |a Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory  |e contributor 
100 1 0 |a Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science  |e contributor 
100 1 0 |a Leiserson, Charles E.  |e contributor 
100 1 0 |a Schardl, Tao Benjamin  |e contributor 
100 1 0 |a Sukha, Jim  |e contributor 
700 1 0 |a Sukha, Jim  |e author 
700 1 0 |a Schardl, Tao Benjamin  |e author 
245 0 0 |a Deterministic parallel random-number generation for dynamic-multithreading platforms 
260 |b Association for Computing Machinery (ACM),   |c 2016-01-19T18:37:33Z. 
856 |z Get fulltext  |u http://hdl.handle.net/1721.1/100926 
520 |a 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. 
520 |a National Science Foundation (U.S.) (Grant CNS-1017058) 
520 |a National Science Foundation (U.S.). Graduate Research Fellowship 
546 |a en_US 
655 7 |a Article 
773 |t Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming (PPoPP '12)