Skip to main content

Concurrent Collections Programming Model

  • Reference work entry
Encyclopedia of Parallel Computing

Synonyms

CnC, TStreams

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

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 1,600.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 1,799.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Bibliography

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

    Google Scholar 

  2. Denis C, Ludovic H, Bernard PS (2009) Asynchronous sequential processes. Information Comput, 207(4):459–495

    Article  MATH  Google Scholar 

  3. Chandra R, Dagum L, Kohr D, Maydan D, McDonald J, Menon R (2001) Programming in OpenMP. Academic Press, San Diego, California

    Google Scholar 

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

    Google Scholar 

  5. Dennis JB (1974) First version of a data flow procedure language. In: Programming symposium, proceedings colloque sur la programmation, Paris, pp 362–376

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  9. Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns: elements of reusable object-oriented software. Addison-Wesley, Reading, Massachusetts

    Google Scholar 

  10. Gelernter D (1985) Generative communication in linda. ACM Trans Program Lang Syst 7(1):80–112

    Article  MATH  Google Scholar 

  11. Gelernter D, Carriero N (1992) Coordination languages and their significance. Commun ACM 35(2):97–107

    Article  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  14. Habanero multicore software research project. http://habanero.rice.edu.

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

    Google Scholar 

  16. Knobe K, Offner CD (2004) Tstreams: A model of parallel computation (preliminary report). Technical Report HPL-2004-78, HP Labs

    Google Scholar 

  17. Peierls T, Goetz B, Bloch J, Bowbeer J, Lea D, Holmes D (2005) Java concurrency in practice. Addison-Wesley Professional, Reading, Massachusetts

    Google Scholar 

  18. Reinders J (2007) Intel threading building blocks: Outfitting {C} + + for Multi-Core Processor Parallelism. O’Reilly Media, Sebastopol, California

    Google Scholar 

  19. Toub S (2008) Parallel programming and the .NET Framework 4.0.http://www.blogs.msdn.com/pfxteam/archive/2008/10/10/8994927.aspx

  20. Travis J, Kring J (2006) LabVIEW for everyone: graphical programming made easy and fun, 3rd edn. Prentice Hall, Upper Saddle River, New Jersey

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics