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]  Przemyslaw Stpiczynski,et al.  Book Review: Parallel Programming in OpenMP Helps Novices (A review of Parallel Programming in OpenMP by Rohit Chandra, Leonardo Dagum, Dave Kohr, Dror Maydan, Jeff McDonald, and Ramesh Menon) , 2002, IEEE Distributed Syst. Online.

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

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

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

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

[7]  Ken Kennedy,et al.  The rise and fall of High Performance Fortran: an historical object lesson , 2007, HOPL.

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

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

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

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

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