Table of Contents Author Guidelines Submit a Manuscript
Scientific Programming
Volume 18 (2010), Issue 3-4, Pages 203-217
http://dx.doi.org/10.3233/SPR-2011-0305

Concurrent Collections

Zoran Budimlić,1 Michael Burke,1 Vincent Cavé,1 Kathleen Knobe,2 Geoff Lowney,2 Ryan Newton,2 Jens Palsberg,3 David Peixotto,1 Vivek Sarkar,1 Frank Schlimbach,2 and Sağnak Taşırlar1

1Rice University, USA
2Intel Corporation, USA
3UCLA, USA

Copyright © 2010 Hindawi Publishing Corporation. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Abstract

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.