A Survey on Parallelism and Determinism
Laure Gonnord (LCIS), Ludovic Henrio, Lionel Morel, Gabriel Radanne

TL;DR
This survey reviews programming languages and models that ensure deterministic parallelism, focusing on preventing non-determinism sources like data races to improve reliability and predictability.
Contribution
It provides a comprehensive comparison of existing solutions for deterministic parallel programming and analyzes their strengths and limitations.
Findings
Deterministic languages help prevent data races and non-determinism.
Programming models vary in their ability to ensure deterministic execution.
Trade-offs exist between flexibility and guarantees of determinism.
Abstract
Parallelism is often required for performance. In these situations an excess of non-determinism is harmful as it means the program can have several different behaviours or even different results. Even in domains such as high-performance computing where parallelism is crucial for performance, the computed value should be deterministic. Unfortunately, non-determinism in programs also allows dynamic scheduling of tasks, reacting to the first task that succeeds, cancelling tasks that cannot lead to a result, etc. Non-determinism is thus both a desired asset or an undesired property depending on the situation. In practice, it is often necessary to limit non-determinism and to identify precisely the sources of non-determinism in order to control what parts of a program are deterministic or not. This survey takes the perspective of programming languages, and studies how programming models can…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
