Synonyms
Definition
Concurrent Collections (CnC) is a parallel programming model, with an execution semantics that is influenced by dynamic dataflow, stream-processing, and tuple spaces. The three main constructs in the CnC programming model are step collections, data collections, and control collections. A step collection corresponds to a computation, and its instances correspond to invocations of that computation that consume and produce data items. A data collection corresponds to a set of data items, indexed by item tags that can be accessed via put and get operations; once put, data items cannot be overwritten and are required to be immutable. A control collection corresponds to a factory [9] for step instances. A put operation on a control collection with a control tag results in the prescription(creation) of step instances from one or more step collections with that tag passed as an input argument. These collections and their relationships are defined statically...
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Bibliography
Budimlić Z, Burke M, Cavé V, Knobe K, Lowney G, Newton R, Palsberg J, Peixotto D, Sarkar V, Schlimbach F, Sağnak T (February 2010) Cnc programming model. Technical Report TR10-5, Rice University
Denis C, Ludovic H, Bernard PS (2009) Asynchronous sequential processes. Information Comput, 207(4):459–495
Chandra R, Dagum L, Kohr D, Maydan D, McDonald J, Menon R (2001) Programming in OpenMP. Academic Press, San Diego, California
Chandramowlishwaran A, Budimlic Z, Knobe K, Lowney G, Sarkar V, Treggiari L (2009) Multi-core implementations of the concurrent collections programming model. In: Proceedings of 14th international workshop on compilers for parallel computers (CPC). Zurich, Switzerland, Jan 2009
Dennis JB (1974) First version of a data flow procedure language. In: Programming symposium, proceedings colloque sur la programmation, Paris, pp 362–376
Charles P et al (2005) X10: An object-oriented approach to non-uniform cluster computing. In: Proceedings of OOPSLA’05, ACM SIGPLAN conference on object-oriented programming systems, languages and applications. San Diego, California, pp 519–538
Bocchino RL et al (2009) A type and effect system for Deterministic Parallel Java. In: Proceedings of OOPSLA’09, ACM SIGPLAN conference on object-oriented programming systems, languages and applications. Orlando, Florida, pp 97–116
Budimlić Z et al (2008) Declarative aspects of memory management in the concurrent collections parallel programming model. In DAMP ’09: the workshop on declarative aspects of multicore programming. Savannah, Georgia, ACM, pp 47–58
Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns: elements of reusable object-oriented software. Addison-Wesley, Reading, Massachusetts
Gelernter D (1985) Generative communication in linda. ACM Trans Program Lang Syst 7(1):80–112
Gelernter D, Carriero N (1992) Coordination languages and their significance. Commun ACM 35(2):97–107
Gordon MI et al (2002) A stream compiler for communication-exposed architectures. In: ASPLOS-X: Proceedings of the 10th international conference on architectural support for programming languages and operating systems. ACM, New York, pp 291–303
Gordon MI et al (2006) Exploiting coarse-grained task, data, and pipeline parallelism in stream programs. In: ASPLOS-XII: Proceedings of the 12th international conference on architectural support for programming languages and operating systems. ACM, New York, pp 151–162
Habanero multicore software research project. http://habanero.rice.edu.
Kennedy K, Koelbel C, Zima HP (2007) The rise and fall of high performance Fortran. In: Proceedings of HOPL’07, Third ACM SIGPLAN history of programming languages conference, San Diego, California, pp 1–22
Knobe K, Offner CD (2004) Tstreams: A model of parallel computation (preliminary report). Technical Report HPL-2004-78, HP Labs
Peierls T, Goetz B, Bloch J, Bowbeer J, Lea D, Holmes D (2005) Java concurrency in practice. Addison-Wesley Professional, Reading, Massachusetts
Reinders J (2007) Intel threading building blocks: Outfitting {C} + + for Multi-Core Processor Parallelism. O’Reilly Media, Sebastopol, California
Toub S (2008) Parallel programming and the .NET Framework 4.0.http://www.blogs.msdn.com/pfxteam/archive/2008/10/10/8994927.aspx
Travis J, Kring J (2006) LabVIEW for everyone: graphical programming made easy and fun, 3rd edn. Prentice Hall, Upper Saddle River, New Jersey
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer Science+Business Media, LLC
About this entry
Cite this entry
Burke, M.G., Knobe, K., Newton, R., Sarkar, V. (2011). Concurrent Collections Programming Model. In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_238
Download citation
DOI: https://doi.org/10.1007/978-0-387-09766-4_238
Publisher Name: Springer, Boston, MA
Print ISBN: 978-0-387-09765-7
Online ISBN: 978-0-387-09766-4
eBook Packages: Computer ScienceReference Module Computer Science and Engineering