Disciplined concurrent programming using tasks with effects

  • Authors:
  • Stephen Heumann;Vikram Adve

  • Affiliations:
  • University of Illinois at Urbana-Champaign;University of Illinois at Urbana-Champaign

  • Venue:
  • HotPar'12 Proceedings of the 4th USENIX conference on Hot Topics in Parallelism
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

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 guarantees 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 support 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 scheduler is used to ensure that two tasks are run concurrently only if their effects are non-interfering. Our model guarantees strong safety properties, including data race freedom and a form of atomicity. We describe this programming model and its properties, and propose several research questions related to it.