Deterministic Consistency: A Programming Model for Shared Memory Parallelism

12/04/2009
by   Amittai Aviram, et al.
0

The difficulty of developing reliable parallel software is generating interest in deterministic environments, where a given program and input can yield only one possible result. Languages or type systems can enforce determinism in new code, and runtime systems can impose synthetic schedules on legacy parallel code. To parallelize existing serial code, however, we would like a programming model that is naturally deterministic without language restrictions or artificial scheduling. We propose "deterministic consistency", a parallel programming model as easy to understand as the "parallel assignment" construct in sequential languages such as Perl and JavaScript, where concurrent threads always read their inputs before writing shared outputs. DC supports common data- and task-parallel synchronization abstractions such as fork/join and barriers, as well as non-hierarchical structures such as producer/consumer pipelines and futures. A preliminary prototype suggests that software-only implementations of DC can run applications written for popular parallel environments such as OpenMP with low (<10

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/19/2010

Efficient System-Enforced Deterministic Parallelism

Deterministic execution offers many benefits for debugging, fault tolera...
research
10/27/2022

A Survey on Parallelism and Determinism

Parallelism is often required for performance. In these situations an ex...
research
09/21/2022

UPIR: Toward the Design of Unified Parallel Intermediate Representation for Parallel Programming Models

The complexity of heterogeneous computing architectures, as well as the ...
research
07/25/2019

Explicit and Controllable Assignment Semantics

Despite the plethora of powerful software to spot bugs, identify perform...
research
01/14/2018

Hierarchical Memory Management for Mutable State

It is well known that modern functional programming languages are natura...
research
03/29/2021

Disentangling Parallelism and Interference in Game Semantics

Game semantics is a denotational semantics presenting compositionally th...
research
10/27/2020

Extended abstract: Type oriented programming for task based parallelism

Writing parallel codes is difficult and exhibits a fundamental trade-off...

Please sign up or login with your details

Forgot password? Click here to reset