Concurrent Collections

We introduce the Concurrent Collections (CnC) programming model. CnC supports flexible combinations of task and data parallelism while retaining determinism. CnC is implicitly parallel, with the user providing high-level operations along with semantic ordering constraints that together form a CnC graph. We formally describe the execution semantics of CnC and prove that the model guarantees deterministic computation. We evaluate the performance of CnC implementations on several applications and show that CnC offers performance and scalability equivalent to or better than that offered by lower-level parallel programming models.

[1]  David Gelernter,et al.  Generative communication in Linda , 1985, TOPL.

[2]  Vivek Sarkar,et al.  X10: an object-oriented approach to non-uniform cluster computing , 2005, OOPSLA '05.

[3]  Jeffrey Travis,et al.  LabVIEW for Everyone: Graphical Programming Made Easy and Fun , 2006 .

[4]  David Holmes,et al.  Java Concurrency in Practice , 2006 .

[5]  James Reinders,et al.  Intel threading building blocks - outfitting C++ for multi-core processor parallelism , 2007 .

[6]  Yuan Yu,et al.  Dryad: distributed data-parallel programs from sequential building blocks , 2007, EuroSys '07.

[7]  Kai Li,et al.  The PARSEC benchmark suite: Characterization and architectural implications , 2008, 2008 International Conference on Parallel Architectures and Compilation Techniques (PACT).

[8]  Vikram S. Adve,et al.  A type and effect system for deterministic parallel Java , 2009, OOPSLA '09.

[9]  Vivek Sarkar,et al.  Declarative aspects of memory management in the concurrent collections parallel programming model , 2009, DAMP '09.

[10]  Denis Caromel,et al.  Asynchronous sequential processes , 2009, Inf. Comput..

[11]  Yi Guo,et al.  The habanero multicore software research project , 2009, OOPSLA Companion.

[12]  Richard W. Vuduc,et al.  Performance evaluation of concurrent collections on high-performance multicore computing systems , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS).

[13]  Ken Kennedy,et al.  The rise and fall of high performance Fortran , 2011, CACM.

[14]  Carl D. Offner,et al.  TStreams : A Model of Parallel Computation ( Preliminary Report ) , .