FlowPools: A Lock-Free Deterministic Concurrent Dataflow Abstraction

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....

Full description

Saved in:
Bibliographic Details
Published inLanguages and Compilers for Parallel Computing pp. 158 - 173
Main Authors Prokopec, Aleksandar, Miller, Heather, Schlatter, Tobias, Haller, Philipp, Odersky, Martin
Format Book Chapter Conference Proceeding
LanguageEnglish
Published Berlin, Heidelberg Springer Berlin Heidelberg 2012
SeriesLecture Notes in Computer Science
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary: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.
ISBN:9783642376573
3642376576
9783642376580
3642376584
ISSN:0302-9743
1611-3349
DOI:10.1007/978-3-642-37658-0_11