Observationally Cooperative Multithreading
Christopher A. Stone, Melissa E. O'Neill, Sonja A. Bohr, Adam M., Cozzette, M. Joe DeBlasio, Julia Matsieva, Stuart A. Pernsteiner, Ari D., Schumer

TL;DR
Observationally Cooperative Multithreading (OCM) enables parallel execution of threads while maintaining the consistency of cooperative multithreading, simplifying reasoning, debugging, and allowing flexible concurrency-control strategies.
Contribution
This paper introduces OCM, a new shared-memory parallelism model that preserves cooperative semantics in parallel execution, facilitating easier programming and flexible concurrency control.
Findings
Threads can run in parallel without violating cooperative semantics
Programmers can defer concurrency-control decisions until after implementation
OCM provides a flexible abstraction for exploring various concurrency-control techniques
Abstract
Despite widespread interest in multicore computing, concur- rency models in mainstream languages often lead to subtle, error-prone code. Observationally Cooperative Multithreading (OCM) is a new approach to shared-memory parallelism. Programmers write code using the well-understood cooperative (i.e., nonpreemptive) multithreading model for uniprocessors. OCM then allows threads to run in parallel, so long as results remain consistent with the cooperative model. Programmers benefit because they can reason largely sequentially. Remaining interthread interactions are far less chaotic than in other models, permitting easier reasoning and debugging. Programmers can also defer the choice of concurrency-control mechanism (e.g., locks or transactions) until after they have written their programs, at which point they can compare concurrency-control strategies and choose the one that offers…
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 · Parallel Computing and Optimization Techniques · Distributed and Parallel Computing Systems
