Intel has released a new version of the Intel Concurrent Collections for C++ library, which helps developers write and tune parallel software.
The new release, Version 0.7, enables developers to deploy applications on either a single Intel multicore workstation or a cluster of workstations, providing developers a way to easily control the execution of their application, offering greater potential for parallelism, scalability and productivity, Intel said.
Intel Concurrent Collections for C++ is available for Windows and Linux as a free download through the Intel Software Network.
With Intel Concurrent Collections for C++, the programmer does not have to think about what should go in parallel. Instead the developer need only specify the semantic dependencies of their algorithm and in doing so defines the ordering constraints only. Concurrent Collections (CnC) lets the programmer define what cannot go in parallel.
Intel Concurrent Collections for C++ provides a separation of concerns between what the application means and how to tune it for a specific platform. The application code can be paired with isolated tuning code. This allows programmers to focus on each separately.
The CnC model enables the programmer to specify high-level computational steps, including inputs and outputs, but the programmer does not have to express when or where things should be executed. The when and where are handled by the runtime and an optional tuning layer. Code within the computational steps is written using standard serial constructs of the C++ language. Data is either local to a computational step or it is explicitly produced and consumed by them.
Intel says an application in this programming model supports multiple styles of parallelism, such as data, task, fork-join or pipeline parallelism.
And Intel says there is no need to think about lower-level parallelization techniques like threading primitives or message passing, and no need to understand pthreads, Message Passing Interface (MPI), Windows threads, Threading Building Blocks and more.
With Concurrent Collections for C++, Intel provides a parallel runtime system for shared and distributed memory systems. The companys goal in supporting a strict separation of concerns between the specification of the application and the optimization of its execution on a specific architecture is to help ease the transition to parallel architectures for programmers who are not parallelism experts.