2013
DOI: 10.1145/2517327.2442540
|View full text |Cite
|
Sign up to set email alerts
|

The tasks with effects model for safe concurrency

Abstract: Today's state-of-the-art 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. I believe that a concurrent programming model should offer strong safety guarantees such as data race freedom, atomicity, and optional determinism, while being flexible enough to express the wide range of uses for concurrency in realistic programs, and offering good performance and scalability. In my thesis … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
25
0

Year Published

2013
2013
2017
2017

Publication Types

Select...
5
1
1

Relationship

1
6

Authors

Journals

citations
Cited by 9 publications
(25 citation statements)
references
References 69 publications
0
25
0
Order By: Relevance
“…Thus, these approaches require explicit synchronization through annotations. Effect systems [5,22] enable a programmer to annotate a sequence of statements with their effects that a scheduler statically or dynamically can use to execute the statements without conflicts. A further alternative is isolation [6,27] to avoid direct shared memory access by working on copies of data within the context of fork-join parallelism.…”
Section: Related Workmentioning
confidence: 99%
“…Thus, these approaches require explicit synchronization through annotations. Effect systems [5,22] enable a programmer to annotate a sequence of statements with their effects that a scheduler statically or dynamically can use to execute the statements without conflicts. A further alternative is isolation [6,27] to avoid direct shared memory access by working on copies of data within the context of fork-join parallelism.…”
Section: Related Workmentioning
confidence: 99%
“…In §B, we demonstrate more examples on concurrent programming applications, including efficient algorithmic speculation, cooperative multi-threading, and program testing. category scheduling strategy FIFO [33,54] LIFO [29] random scheduling [27] inherit from previous decisions [29] write before read [33] ordering tasks with less effects first [33] strategy tasks with more effects first [33] concurrent read, exclusive write [27,54] conflicting tasks in same thread [29,44] task fusion [18,46] divide into no conflicting groups of tasks [46] execute conflicting tasks concurrently [9,10,19] suspend conflicting tasks […”
Section: Additional Examples On Schedulingmentioning
confidence: 99%
“…In principle, task independence can be guaranteed by the type system [4] or by explicit assignment of "ownership" [15], but we believe the resulting complexity to be inappropriate for scriptinghence the desire for dynamic data race detection. Similarly, both false negatives and false positives may be acceptable when searching for suspected bugs in a complex system, but for DPR we aim to transparently confirm the absence of races; for this task we take as given that the detector must be precise: it should identify all (and only) those conflicting operations that are logically concurrent (unordered by happens-before) in a given program execution-even if those operations occur in the same worker thread.…”
Section: Log-based Data Race Detectionmentioning
confidence: 99%