FlowPools: A Lock-Free Deterministic Concurrent Dataflow Abstraction

  • Aleksandar Prokopec
  • Heather Miller
  • Tobias Schlatter
  • Philipp Haller
  • Martin Odersky
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7760)

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

Keywords

dataflow concurrent data-structure deterministic parallelism 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Aleksandar Prokopec
    • 1
  • Heather Miller
    • 1
  • Tobias Schlatter
    • 1
  • Philipp Haller
    • 2
  • Martin Odersky
    • 1
  1. 1.EPFLSwitzerland
  2. 2.Typesafe, Inc.UK

Personalised recommendations