Concurrent Collections (known as CnC) is a
programming model
A programming model is an execution model coupled to an API or a particular pattern of code. In this style, there are actually two execution models in play: the execution model of the base programming language and the execution model of the p ...
for
software framework
In computer programming, a software framework is a software abstraction that provides generic functionality which developers can extend with custom code to create applications. It establishes a standard foundation for building and deploying soft ...
s to expose
parallelism in applications. The Concurrent Collections conception originated from
tagged
stream processing
In computer science, stream processing (also known as event stream processing, data stream processing, or distributed stream processing) is a programming paradigm which views Stream (computing), streams, or sequences of events in time, as the centr ...
development with HP TStreams.
TStreams
Around 2003,
Hewlett-Packard
The Hewlett-Packard Company, commonly shortened to Hewlett-Packard ( ) or HP, was an American multinational information technology company. It was founded by Bill Hewlett and David Packard in 1939 in a one-car garage in Palo Alto, California ...
Cambridge Research Lab developed ''TStreams'', a stream processing forerunner of the basic concepts of CnC.
Concurrent Collections for C++
''Concurrent Collections for C++'' is an open source C++ template library developed by
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
for implementing parallel CnC applications in
C++ with shared and/or distributed memory.
Habanero CnC
Rice University
William Marsh Rice University, commonly referred to as Rice University, is a Private university, private research university in Houston, Houston, Texas, United States. Established in 1912, the university spans 300 acres.
Rice University comp ...
has developed various CnC language implementations based on their ''Habanero'' project infrastructure.
See also
*
Stream processing
In computer science, stream processing (also known as event stream processing, data stream processing, or distributed stream processing) is a programming paradigm which views Stream (computing), streams, or sequences of events in time, as the centr ...
*
Flow-based programming (FBP)
*
Tuple space
*
Functional reactive programming (FRP)
*
Linda (coordination language)
*
Threading Building Blocks
oneAPI Threading Building Blocks (oneTBB; formerly Threading Building Blocks or TBB) is a C++ template library developed by Intel for parallel programming on multi-core processors. Using TBB, a computation is broken down into tasks that can r ...
(TBB)
*
Cilk
Cilk, Cilk++, Cilk Plus and OpenCilk are general-purpose programming languages designed for multithreaded parallel computing. They are based on the C and C++ programming languages, which they extend with constructs to express parallel loop ...
/
Cilk Plus
*
Intel Parallel Studio
Intel Parallel Studio XE was a software development product developed by Intel that facilitated native code development on Windows, macOS and Linux in C++ and Fortran for parallel computing. Parallel programming enables software programs to take ...
Notes
References
*
*
*
*
*
*
External links
Intel Concurrent Collections for C++ for Windows and Linuxat
Intel DZ,
"What If"project
**
at GitHub
***
CNC - HabaneroConcurrent Collections as part of the Rice University Habanero project
{{Intel software
Parallel computing
Concurrent programming languages