An Ownership Policy and Deadlock Detector for Promises
Caleb Voss, Vivek Sarkar

TL;DR
This paper introduces an ownership-based approach and a lock-free runtime algorithm for deadlock detection in promise-based parallel programming, improving bug detection and reducing overheads.
Contribution
It proposes an ownership semantics for promises, a precise deadlock detection algorithm, and analyzes its correctness under modern memory models.
Findings
12% average time overhead in detection
6% average memory overhead
More efficient than previous deadlock detection methods
Abstract
Task-parallel programs often enjoy deadlock freedom under certain restrictions, such as the use of structured join operations, as in Cilk and X10, or the use of asynchronous task futures together with deadlock-avoiding policies such as Known Joins or Transitive Joins. However, the promise, a popular synchronization primitive for parallel tasks, does not enjoy deadlock-freedom guarantees. Promises can exhibit deadlock-like bugs; however, the concept of a deadlock is not currently well-defined for promises. To address these challenges, we propose an ownership semantics in which each promise is associated to the task which currently intends to fulfill it. Ownership immediately enables the identification of bugs in which a task fails to fulfill a promise for which it is responsible. Ownership further enables the discussion of deadlock cycles among tasks and promises and allows us to…
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.
