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 prog ...
for
software frameworks 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 data streams, or sequences of events in time, as the central input and ou ...
development with HP TStreams.
TStreams
Around 2003,
Hewlett-Packard 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. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the developers of the x86 seri ...
for implementing parallel CnC applications in
C++
C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
with shared and/or distributed memory.
Habanero CnC
Rice University
William Marsh Rice University (Rice University) is a private research university in Houston, Texas. It is on a 300-acre campus near the Houston Museum District and adjacent to the Texas Medical Center. Rice is ranked among the top universities ...
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 data streams, or sequences of events in time, as the central input and ou ...
*
Flow-based programming
In computer programming, flow-based programming (FBP) is a programming paradigm that defines applications as networks of "black box" processes, which exchange data across predefined connections by message passing, where the connections are speci ...
(FBP)
*
Tuple space
A tuple space is an implementation of the associative memory paradigm for parallel/distributed computing. It provides a repository of tuples that can be accessed concurrently. As an illustrative example, consider that there are a group of process ...
*
Functional reactive programming
Functional reactive programming (FRP) is a programming paradigm for reactive programming ( asynchronous dataflow programming) using the building blocks of functional programming (e.g. map, reduce, filter). FRP has been used for programming graphi ...
(FRP)
*
Linda (coordination language)
In computer science, Linda is a coordination model that aids communication in parallel computing environments. Developed by David Gelernter, it is meant to be used alongside a full-fledged computation language like Fortran or C where Linda's ro ...
*
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 ru ...
(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 loops ...
/
Cilk Plus
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 ...
*
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