The tasks with effects model for safe concurrency

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

Research output: Chapter in Book/Report/Conference proceedingConference contribution

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 effect-aware 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)
Title of host publicationPPoPP 2013 - Proceedings of the 2013 ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
Pages239-250
Number of pages12
DOIs
StatePublished - 2013
Event18th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2013 - Shenzhen, China
Duration: Feb 23 2013Feb 27 2013

Publication series

NameProceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP

Conference

Conference18th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2013
Country/TerritoryChina
CityShenzhen
Period2/23/132/27/13

Keywords

  • atomicity
  • concurrent and parallel programming
  • data race freedom
  • determinism
  • effects
  • task isolation
  • task scheduling
  • tasks

ASJC Scopus subject areas

  • Software

Cite this