S. Heumann, V. Adve, and S. Wang. Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming, page 239--250. New York, NY, USA, ACM, (2013)
DOI: 10.1145/2442516.2442540
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 <i>tasks with effects</i> 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 <i>effects</i>, 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.
%0 Conference Paper
%1 Heumann:2013:TEM
%A Heumann, Stephen T.
%A Adve, Vikram S.
%A Wang, Shengjie
%B Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming
%C New York, NY, USA
%D 2013
%I ACM
%K Effect Scheduling System Task
%P 239--250
%R 10.1145/2442516.2442540
%T The Tasks with Effects Model for Safe Concurrency
%U http://doi.acm.org/10.1145/2442516.2442540
%X 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 <i>tasks with effects</i> 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 <i>effects</i>, 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.
%@ 978-1-4503-1922-5
@inproceedings{Heumann:2013:TEM,
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 <i>tasks with effects</i> 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 <i>effects</i>, 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.},
acmid = {2442540},
added-at = {2013-04-10T09:46:57.000+0200},
address = {New York, NY, USA},
author = {Heumann, Stephen T. and Adve, Vikram S. and Wang, Shengjie},
biburl = {https://www.bibsonomy.org/bibtex/23ffd9aa49c163b2f89ec1fc380fc142b/gron},
booktitle = {Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming},
description = {The tasks with effects model for safe concurrency},
doi = {10.1145/2442516.2442540},
interhash = {3e6e9671ee4dfe7b00d897fca71d81ab},
intrahash = {3ffd9aa49c163b2f89ec1fc380fc142b},
isbn = {978-1-4503-1922-5},
keywords = {Effect Scheduling System Task},
location = {Shenzhen, China},
numpages = {12},
pages = {239--250},
publisher = {ACM},
series = {PPoPP '13},
timestamp = {2013-04-10T09:46:57.000+0200},
title = {The Tasks with Effects Model for Safe Concurrency},
url = {http://doi.acm.org/10.1145/2442516.2442540},
year = 2013
}