Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation 2014
DOI: 10.1145/2594291.2594300
|View full text |Cite
|
Sign up to set email alerts
|

Dynamic enforcement of determinism in a parallel scripting language

Abstract: Determinism is an appealing property for parallel programs, as it simplifies understanding, reasoning and debugging. It is particularly appealing in dynamic (scripting) languages, where ease of programming is a dominant design goal. Some existing parallel languages use the type system to enforce determinism statically, but this is not generally practical for dynamic languages. In this paper, we describe how determinism can be obtained-and dynamically enforced/verified-for appropriate extensions to a parallel s… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
15
0

Year Published

2014
2014
2020
2020

Publication Types

Select...
5
2
1

Relationship

0
8

Authors

Journals

citations
Cited by 14 publications
(15 citation statements)
references
References 39 publications
(24 reference statements)
0
15
0
Order By: Relevance
“…For example, a safe parallelization system called BOP used bitmaps initially [Ding et al 2007] and addressed ranges later [Ke et al 2011] to record read/write sets. More recently, a deterministic parallel system, TARDIS, used intersecting sets for task-level access race detection [Ji et al 2013;Lu et al 2014]. LD does not maintain any form of access sets during program execution.…”
Section: The Data-parallel Implementationmentioning
confidence: 99%
See 1 more Smart Citation
“…For example, a safe parallelization system called BOP used bitmaps initially [Ding et al 2007] and addressed ranges later [Ke et al 2011] to record read/write sets. More recently, a deterministic parallel system, TARDIS, used intersecting sets for task-level access race detection [Ji et al 2013;Lu et al 2014]. LD does not maintain any form of access sets during program execution.…”
Section: The Data-parallel Implementationmentioning
confidence: 99%
“…However, they require atomic access, which is costly on GPUs because of the high degree of parallelism. Private metadata, for example, read/write sets in TARDIS [Lu et al 2014], avoid atomics but still need instrumentation of each load/store. At a minimum, it turns every read into a read and a write, and every write into two writes.…”
Section: Introductionmentioning
confidence: 99%
“…That implementation takes advantage of compiler optimizations to avoid instrumenting all memory access; we have not yet applied such optimizations. Lastly, in contrast to existing race detectors for fork-join computations, TARDIS [22,24] does not explicitly keep track of the series-parallel relationships among strands. Instead, it employees a log-based access set and detects races by intersecting the access sets of logically parallel subcomputations at the join point.…”
Section: Related Workmentioning
confidence: 99%
“…In the safepoint action, the thread will kill all the other threads, and complete the computation sequentially, taking over the work of the aborted threads, if any. A similar deterministic parallel programming model called Deterministic Parallel Ruby [10] has also been proposed in the context of Ruby. Differently from RiverTrail, the Deterministic Parallel Ruby model does not enforce deterministic parallel execution using a bailout protocol, but via a "debug" mode that dynamically checks for non-deterministic execution paths.…”
Section: Deterministic Parallel Executionmentioning
confidence: 99%