All for One and One for All: Program Logics for Exploiting Internal Determinism in Parallel Programs
Alexandre Moine, Sam Westrick, Joseph Tassarotti

TL;DR
This paper introduces a formal verification framework for internally deterministic parallel programs, enabling simpler reasoning and verification by exploiting schedule-independent safety and specialized logics.
Contribution
It develops Musketeer and Angelic logics for verifying schedule-independent safety in internally deterministic programs, and proves the soundness of an affine type system enforcing internal determinism.
Findings
Musketeer proves schedule-independent safety for parallel programs.
Angelic logic verifies a single sequential execution suffices for safety.
MiniDet enforces internal determinism with a verified affine type system.
Abstract
Nondeterminism makes parallel programs challenging to write and reason about. To avoid these challenges, researchers have developed techniques for internally deterministic parallel programming, in which the steps of a parallel computation proceed in a deterministic way. Internal determinism is useful because it lets a programmer reason about a program as if it executed in a sequential order. However, no verification framework exists to exploit this property and simplify formal reasoning about internally deterministic programs. To capture the essence of why internally deterministic programs should be easier to reason about, this paper defines a property called schedule-independent safety. A program satisfies schedule-independent safety, if, to show that the program is safe across all orderings, it suffices to show that one terminating execution of the program is safe. We then present a…
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.
Taxonomy
TopicsDistributed systems and fault tolerance · Logic, programming, and type systems · Formal Methods in Verification
