FlowPools: A Lock-Free Deterministic Concurrent Dataflow Abstraction
2012 (English)In: Languages and Compilers for Parallel Computing: 25th International Workshop, LCPC 2012, Tokyo, Japan, September 11-13, 2012, Revised Selected Papers, Springer Berlin/Heidelberg, 2012, Vol. 7760, 158-173 p.Conference paper (Refereed)
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. Additionally, we provide a correctness proof, showing that the implementation is linearizable, lock-free, and deterministic. Finally, we show experimental results which compare our FlowPool against corresponding operations on other concurrent data structures, and show that in addition to offering new capabilities, FlowPools reduce insertion time by 49 - 54% on a 4-core i7 machine with respect to comparable concurrent queue data structures in the Java standard library.
Place, publisher, year, edition, pages
Springer Berlin/Heidelberg, 2012. Vol. 7760, 158-173 p.
, Lecture Notes in Computer Science, ISSN 0302-9743 ; 7760
Concurrent data-structure, Dataflow, Deterministic parallelism
IdentifiersURN: urn:nbn:se:kth:diva-165605DOI: 10.1007/978-3-642-37658-0_11ScopusID: 2-s2.0-84893046285ISBN: 978-3-642-37657-3ISBN: 978-3-642-37658-0OAI: oai:DiVA.org:kth-165605DiVA: diva2:808654
2012 International Workshop on Languages and Compilers for Parallel Computing, Tokyo, Japan, September 11-13, 2012
QC 201504302015-04-292015-04-292015-04-30Bibliographically approved