Concurrent Collections
{{Short description|Programming model for software frameworks}}
Concurrent Collections (known as CnC) is a programming model for software frameworks to expose parallelism in applications. The Concurrent Collections conception originated from tagged stream processing development with HP TStreams.
TStreams
Around 2003, Hewlett-Packard Cambridge Research Lab developed TStreams, a stream processing forerunner of the basic concepts of CnC.{{cite tech report |title=TStreams: How to Write a Parallel Program |url=http://www.hpl.hp.com/techreports/2004/HPL-2004-193.html |access-date=2014-09-07 |archive-date=2019-02-07 |archive-url=https://web.archive.org/web/20190207174253/http://www.hpl.hp.com/techreports/2004/HPL-2004-193.html |url-status=dead }}{{cite tech report |title=TStreams: A Model of Parallel Computation |url=http://www.hpl.hp.com/techreports/2004/HPL-2004-78R1.html |access-date=2014-09-07 |archive-date=2014-09-07 |archive-url=https://web.archive.org/web/20140907095912/http://www.hpl.hp.com/techreports/2004/HPL-2004-78R1.html |url-status=dead }}{{cite tech report |title=Compiling to TStreams, a New Model of Parallel Computation |url=http://www.hpl.hp.com/techreports/2005/HPL-2005-138.html}}
Concurrent Collections for C++
Habanero CnC
Rice University has developed various CnC language implementations based on their Habanero project infrastructure.
See also
Notes
{{reflist}}
References
- {{Cite conference | doi = 10.1145/1481839.1481846| title = Declarative aspects of memory management in the concurrent collections parallel programming model| work = Proceedings of the 4th workshop on Declarative aspects of multicore programming| conference = DAMP '09| pages = 47–58| year = 2008| last1 = Budimlic | first1 = Z. | last2 = Chandramowlishwaran | first2 = A. M. | last3 = Knobe | first3 = K. | last4 = Lowney | first4 = G. N. | last5 = Sarkar | first5 = V. | last6 = Treggiari | first6 = L. | isbn = 978-1-60558-417-1| url = http://courses.cs.vt.edu/cs5204/fall11-kafura/Papers/CnC/Declarative-Aspects-Memory-Management.pdf}}
- {{Cite journal | last1 = Budimlić | first1 = Z. | last2 = Burke | first2 = M. | last3 = Cavé1 | first3 = V. | last4 = Knobe | first4 = K. | last5 = Lowney | first5 = G. | last6 = Newton | first6 = R. | last7 = Palsberg | first7 = J. | last8 = Peixotto1 | first8 = D. | last9 = Sarkar | first9 = V. | last10 = Schlimbach | first10 = F. | last11 = Taşırlar | first11 = S. | doi = 10.1155/2010/521797| title = Concurrent Collections | journal = Scientific Programming | volume = 18 | issue = 3–4 | pages = 203–217 | year = 2010 | url = http://www.cs.rice.edu/~vs3/PDF/CNC_JSC10.pdf | accessdate = 2013-08-25| doi-access = free }}
- {{Cite conference | doi = 10.1145/1693453.1693506| title = Applying the concurrent collections programming model to asynchronous parallel dense linear algebra| work = Proceedings of the 15th ACM SIGPLAN symposium on Principles and practice of parallel programming| conference = PPoPP '10| pages = 345–346| year = 2010| last1 = Chandramowlishwaran | first1 = A. | last2 = Knobe | first2 = K. | last3 = Vuduc | first3 = R. | isbn = 978-1-60558-708-0| url = http://hpcgarage.org/wp/chandramowlishwaran2010-cnc-poster.pdf}}
- {{Cite conference | doi = 10.1109/IPDPS.2010.5470404| chapter = Performance evaluation of concurrent collections on high-performance multicore computing systems| title = 2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS)| conference = IPDPS 2010| pages = 1–12| year = 2010| last1 = Chandramowlishwaran | first1 = A. | last2 = Knobe | first2 = K. | last3 = Vuduc | first3 = R. | isbn = 978-1-4244-6442-5| url = http://vuduc.org/pubs/chandramowlishwaran2010-ipdps-cnc.pdf| citeseerx = 10.1.1.169.5643}}
- {{Cite book| last1 = Burke | first1 = M. G.| last2 = Knobe | first2 = K.| last3 = Newton | first3 = R.| last4 = Sarkar | first4 = V.| doi = 10.1007/978-0-387-09766-4_238| chapter = Concurrent Collections Programming Model| title = Encyclopedia of Parallel Computing| publisher = Springer| volume = 4| pages = 364–371| year = 2011| isbn = 978-0-387-09765-7| url = https://wiki.rice.edu/confluence/download/attachments/4425835/cnc_encyc.pdf| accessdate = 2013-08-25}}
- {{Cite journal | doi = 10.1002/cpe.2811| title = Measuring the overhead of Intel C++ Concurrent Collections over Threading Building Blocks for Gauss–Jordan elimination| journal = Concurrency and Computation: Practice and Experience| volume = 24| issue = 18| pages = 2282–2301| date = 25 December 2012| last1 = Tang | first1 = P. | s2cid = 13585339| url = http://www.ualr.edu/pxtang/papers/ccpe12-journal.pdf}}
External links
- [https://software.intel.com/en-us/articles/intel-concurrent-collections-for-cc/ Intel Concurrent Collections for C++ for Windows and Linux] at Intel DZ, a [https://software.intel.com/en-us/whatif "What If"] project
- {{SourceForge|icnc|Intel Concurrent Collections for C++}}
- [https://icnc.github.io/index.html Intel Concurrent Collections for C++] at GitHub
- {{Github|icnc/icnc|Intel Concurrent Collections for C++}}
- [http://habanero.rice.edu/cnc CNC - Habanero] Concurrent Collections as part of the Rice University Habanero project
{{Intel software}}