The tasks with effects model for safe concurrency

Stephen T. Heumann, Vikram S. Adve, Shengjie Wang

Research output: Contribution to journalArticlepeer-review

Abstract

Today's widely-used concurrent programming models either provide weak safety guarantees, making it easy to write code with subtle errors, or are limited in the class of programs that they can express. We propose a new concurrent programming model based on tasks with effects that offers strong safety guarantees while still providing the flexibility needed to support the many ways that concurrency is used in complex applications. The core unit of work in our model is a dynamically-created task. The model's key feature is that each task has programmer-specified effects, and a run-time scheduler is used to ensure that two tasks are run concurrently only if they have non-interfering effects. Through the combination of statically verifying the declared effects of tasks and using an effectaware run-time scheduler, our model is able to guarantee strong safety properties, including data race freedom and atomicity. It is also possible to use our model to write programs and computations that can be statically proven to behave deterministically. We describe the tasks with effects programming model and provide a formal dynamic semantics for it.We also describe our implementation of this model in an extended version of Java and evaluate its use in several programs exhibiting various patterns of concurrency.

Original languageEnglish (US)
Pages (from-to)239-250
Number of pages12
JournalACM SIGPLAN Notices
Volume48
Issue number8
DOIs
StatePublished - Aug 2013

Keywords

  • Atomicity
  • Concurrent and parallel programming
  • Data race freedom
  • Determinism
  • Effects
  • Task isolation
  • Task scheduling
  • Tasks

ASJC Scopus subject areas

  • Computer Science(all)

Cite this