Disciplined concurrent programming using tasks with effects

Stephen Heumann, Vikram Adve

Research output: Contribution to conferencePaperpeer-review


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 programmerspecified, 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.

Original languageEnglish (US)
StatePublished - 2012
Event4th USENIX Workshop on Hot Topics in Parallelism, HotPar 2012 - Berkeley, United States
Duration: Jun 7 2012Jun 8 2012


Conference4th USENIX Workshop on Hot Topics in Parallelism, HotPar 2012
Country/TerritoryUnited States

ASJC Scopus subject areas

  • Software
  • Theoretical Computer Science
  • Computational Theory and Mathematics


Dive into the research topics of 'Disciplined concurrent programming using tasks with effects'. Together they form a unique fingerprint.

Cite this