Observationally Cooperative Multithreading


Sonja A. Bohr, Adam M. Cozzette, M. Joe DeBlasio, Julia Matsieva, Stuart A. Pernsteiner, Ari D. Schumer
Thursday, October 7, 2010
4:15 PM – 5:30 PM
Galileo Pryne

This talk will be about summer research led by professors Melissa O’Neill and Chris Stone. The students who worked for them over the summer will discuss their work on Observationally Cooperative Multithreading as an easier and safer alternative to the preemptive multithreading systems used today.

Although there is widespread interest in multicore computing, mainstream languages use concurrency models that induce subtle, error-prone code that is hard to reason about and debug.

Observationally Cooperative Multithreading (OCM) is a new approach to this problem. Programmers write code using the well-understood cooperative (i.e., nonpreemptive) multithreading model for uniprocessors. But OCM allows threads to be run in parallel, so long as the results are consistent with the cooperative model.

OCM sits in a sweet spot. Programmers benefit because they can reason largely sequentially (and when they must consider interthread interactions, those interactions are far less chaotic than in other models, permitting easier reasoning and debugging). Programmers also benefit from being able to defer their 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 the best performance. Implementers and researchers also benefit from the agnostic nature of OCM — it provides a level of abstraction to investigate, compare, and combine a variety of interesting concurrency-control techniques.