Disciplined concurrent programming using tasks with effects

Stephen T. Heumann, Vikram Adve · 2012

Concurrent programming has become ubiquitous, but today’s widely-used concurrent programming models provide few safety guarantees, making it easy to write code with subtle errors. Models that do give strong guar-antees often can only express a relatively limited class of programs. We argue that a concurrent programming model should offer strong safety guarantees, while still providing the flexibility and performance needed to sup-port the many ways that concurrency is used in complex, interactive applications. To achieve this, we propose a new programming model based on tasks with effects. In this model, the core unit of work is a dynamically-created task. The key feature of our model is that each task has programmer-specified, statically-checked effects, and a runtime sched-uler is used to ensure that two tasks are run concurrently only if their effects are non-interfering. Our model guar-antees strong safety properties, including data race free-dom and a form of atomicity. We describe this program-ming model and its properties, and propose several re-search questions related to it. 1

Read the paper · More papers on PaperTik