2013
DOI: 10.1007/978-3-642-37658-0_11
|View full text |Cite
|
Sign up to set email alerts
|

FlowPools: A Lock-Free Deterministic Concurrent Dataflow Abstraction

Abstract: Abstract. Implementing correct and deterministic parallel programs is challenging. Even though concurrency constructs exist in popular programming languages to facilitate the task of deterministic parallel programming, they are often too low level, or do not compose well due to underlying blocking mechanisms. In this paper, we present the design and implementation of a fundamental data structure for composable deterministic parallel dataflow computation through the use of functional programming abstractions. A… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
15
0

Year Published

2013
2013
2018
2018

Publication Types

Select...
5
4

Relationship

4
5

Authors

Journals

citations
Cited by 22 publications
(15 citation statements)
references
References 22 publications
0
15
0
Order By: Relevance
“…Prokopec et al [23] show that higher-order functions can simplify the programming interface of data-flow abstractions in the context of parallel Collections. Odersky [18] shows how Scala's collections framework, which has the equivalent functional operations coming in Java 8, simplifies the use of parallelism when iterating over Colections.…”
Section: Related Workmentioning
confidence: 99%
“…Prokopec et al [23] show that higher-order functions can simplify the programming interface of data-flow abstractions in the context of parallel Collections. Odersky [18] shows how Scala's collections framework, which has the equivalent functional operations coming in Java 8, simplifies the use of parallelism when iterating over Colections.…”
Section: Related Workmentioning
confidence: 99%
“…FlowPools Prokopec et al [29] recently proposed a data structure with an API closely related to ideas in LVish: a FlowPool is a bag that allows concurrent insertions but forbids removals, a seal operation that forbids further updates, and combinators like foreach that invoke callbacks as data arrives in the pool. To retain determinism, the seal operation requires explicitly passing the expected bag size as an argument, and the program will raise an exception if the bag goes over the expected size.…”
Section: Related Workmentioning
confidence: 98%
“…FlowPools [23] provide a deterministic concurrent dataflow abstraction for multisets, with an efficient lockfree implementation. Reactive Async generalizes FlowPools by supporting arbitrary lattice-based data, including but not limited to multisets.…”
Section: Related Workmentioning
confidence: 99%
“…Recently, researchers designed concurrency models, like LVars [15], FlowPools [23] and Isolation Types [6], that result in deterministic executions. The idea behind these models is to restrict expressivity to capture only computations that can be defined in a deterministic way.…”
Section: Introductionmentioning
confidence: 99%