A Survey on Parallelism and Determinism

10/27/2022
by   Laure Gonnord, et al.
0

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 ensure the determinism of parallel programs. This survey studies not only deterministic languages but also programming models that prevent one particularly demanding source of non-determinism: data races. Our objective is to compare existing solutions to the following questions: How programming languages can help programmers write programs that run in a parallel manner without visible non-determinism? What programming paradigms ensure this kind of properties? We study these questions and discuss the merits and limitations of different approaches.

READ FULL TEXT

page 9

page 11

page 12

research
08/12/2018

Linguistic Relativity and Programming Languages

The use of programming languages can wax and wane across the decades. We...
research
03/29/2021

Disentangling Parallelism and Interference in Game Semantics

Game semantics is a denotational semantics presenting compositionally th...
research
12/04/2009

Deterministic Consistency: A Programming Model for Shared Memory Parallelism

The difficulty of developing reliable parallel software is generating in...
research
01/06/2023

High-Performance Deterministic Concurrency using Lingua Franca

Actor frameworks and similar reactive programming techniques are widely ...
research
06/16/2022

CuPBoP: CUDA for Parallelized and Broad-range Processors

CUDA is one of the most popular choices for GPU programming, but it can ...
research
05/31/2023

PERFOGRAPH: A Numerical Aware Program Graph Representation for Performance Optimization and Program Analysis

The remarkable growth and significant success of machine learning have e...
research
12/09/2022

Parallelism detection using graph labelling

Usage of multiprocessor and multicore computers implies parallel program...

Please sign up or login with your details

Forgot password? Click here to reset