vix.ing · top · new · best · stats

Deterministic Consistency: A Programming Model for Shared Memory Parallelism

2009/12/04 by Amittai Aviram, Bryan Ford, Aviram, Amittai +1
Computer Science · #C.1.4 #D.1.3 #D.3.3 #Distributed and Parallel Computing Systems #Distributed systems and fault tolerance #FOS: Computer and information sciences #Operating Systems (cs.OS) #Parallel Computing and Optimization Techniques #cs.OS

paper · pdf · doi:10.48550/arxiv.0912.0926

7 pages, 3 figures

openalex publication_date 2009/12/04 · arxiv created 2010/02/01 · arxiv updated 2010/02/08 · openalex created_date 2025/10/10 · openalex updated_date 2026/07/28

Abstract

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%) overhead for some applications.

Citations

Related