| April 11, 2012 3:00 PM PDT | |
| Product Overview | FAQ | Documentation and Tutorials | Papers | Discussion Forum and Feedback | Blog |
- Download Version 0.7 for Windows* 64bit
- Download Version 0.7 for Windows* 32bit
- Download Version 0.7 for Linux* 64bit
Product Overview
Intel® Concurrent Collections for C++ provides a mechanism which facilitates writing and tuning C++ programs which will execute in parallel:
Easy parallelism- There is no need to think about lower level parallelization techniques like threading primitives or message passing; no need to understand pthreads, MPI, Windows threads, TBB,...
- There is no need to think about different types of parallelism such as task, pipeline, fork-join, task or data parallelism.
- 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 same source runs on Windows and Linux.
- The same binary runs on shared memory multi-core systems and clusters of workstations. In fact, Intel® Concurrent Collections for C++ is a unified model for shared and distributed memory systems (as opposed to the MPI / OpenMP combination, for example).
- Because Intel® Concurrent Collections for C++ provides a way to express an algorithm with minimal scheduling constraints, it is very efficient.
- In addition, Intel® Concurrent Collections for C++ supports two types of tuning:
- Intel® Concurrent Collections for C++ achieves scalable performance on a wide range of configurations from small multicore systems to large clusters.
- No need to re-write or re-compile application in order to target a new configuration.
The Idea
With Intel® Concurrent Collections for C++ the programmer does not think about what should go in parallel; instead he/she specifies the semantic dependencies of his algorithm and so defines the ordering constraints only: Concurrent Collections (CnC) lets the programmer define what cannot go in parallel. The model allows the programmer to specify high-level computational steps including inputs and outputs but he/she does not express when or where things should be executed. The when and where are handled by the runtime and/or 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. An application in this programming model supports multiple styles of parallelism (e.g., data, task, pipeline parallel). While the interface between the computational steps and the runtime system remains unchanged, a wide range of runtime systems may target different architectures (e.g., shared memory, distributed) or support different scheduling methodologies (e.g., static or dynamic). With Intel® Concurrent Collections for C++ we provide a parallel runtime system for shared and distributed memory systems. Our 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. For excellent performance results which we were able to achieve with Intel® Concurrent Collections for C++ please read here.
What's new?
New features and enhancements in version 0.7 are listed in the Release Notes.
Documentation and Tutorials
- Getting Started (Installation, Requirements, using samples, etc.)
- Methodology of Concurrent Collections: Eight fundamental patterns
- Tutorial: Intel® Concurrent Collections for C++ in Action (recommended if you are new to Concurrent Collections and/or C++)
- Step-by-Step API Tutorial (recommended if you know Concurrent Collections and C++)
- API documentation
- Frequently Asked Questions (FAQ)
- Release Notes
Papers, Presentations, Research
- The Concurrent Collections Programming Model
- Easy and Effective Distributed Computing with Intel® Concurrent Collections for C++
- Habanero Concurrent Collections Project at Rice University
Report Problems or Leave Feedback
To stay in touch with the Intel® Concurrent Collections team and the community, we provide a new email-list you can subscribe to or just watch online:
http://tech.groups.yahoo.com/group/intel_concurrent_collections/.
Aternatively, to report a problem or leave feedback on this product, please visit:
http://softwarecommunity.intel.com/articles/eng/3862.htm
or visit the "Whatif Alpha Forum" to participate in forum discussions about Intel® Concurrent Collections:
http://software.intel.com/en-us/forums/whatif-alpha-software/
then click on "Search Forum" and search for "Concurrent Collections"
For more complete information about compiler optimizations, see our Optimization Notice.
Comments (13) 
| May 25, 2009 4:57 PM PDT
ibrahim | any plan for windows |
| June 1, 2009 9:40 AM PDT
khaled |
an incomplete step is a failure in the technology world thus, i'm taking this seriously ... |
| July 16, 2009 10:01 AM PDT
prem77
|
Intel Software Network, Please i no any idea about intel software black belt , give me all information about same. |
| July 16, 2009 10:01 AM PDT
prem77
|
Intel Software Network, Please i no any idea about intel software black belt , give me all information about same. thank you, |
| July 16, 2009 10:07 AM PDT
prem77
|
Intel Software Network, how to collect point ... |
| September 2, 2009 2:28 AM PDT
Madhav Rao
|
HEY I HAVE DOWNLOADED THIS COMPILER AND HOPE IT SOLVES MY PROBLEM. CAN ANY ONE TELL ME HOW TO INCLUDE OPENMP AND PTHREAD LIBRARIES IN MY V.B. AS WELL AS C COMPILER. THANKING YOU. |
| May 6, 2010 12:22 PM PDT
Tolga |
Just FYI, the GraphBuilder documentation links are broken in the release notes (in fact all the release notes links are broken). Is there another way to see them? |
| May 7, 2010 6:19 AM PDT
Melanie Blower (Intel)
| Tolga, Thanks for your report concerning the broken links! We are working on this web page and hope to have the links corrected by later today. The graph builder documentation may also be accessed by downloading and installing the 0.5 release. --Melanie |
| March 21, 2012 11:21 PM PDT
Jeff Keasler | How well does CnC work with SIMD vectorization? Or is that an orthogonal issue to the CnC-level abstraction? |
| March 23, 2012 1:45 AM PDT
Frank Schlimbach (Intel)
|
Hi Jeff, yes, SIMD vectorization is an orthogonal issue like other optimizations one might apply to step-code. SIMD parallelism is too fine grained to be handled by our current implementation/feature-set (but in general there is no reason why the CnC model couldn't handle this). frank ps: The email-list and the forum are monitored more closely. Technical questions have a better chance of getting answered there and provide better support for monitoring/following discussions. |
| April 19, 2012 11:36 AM PDT
Aaron Landwehr |
There are a number of problems with the instructions given for setting up CNC manually for VS2010: 1) "project -> Properties -> C/C++ -> General -> Additional Dependencies" doesn't exist in VS2010. 2) The TBB instructions assume "Intel64" for the path which isn't correct for ia32. 3) You need to add the TBB library directory to "project -> Properties -> VC++ Directory -> Library Directories" OR "project -> Properties -> Linker -> Additional Library Directories" because the TBB library that is directly linked depends on other TBB libraries in the same directory (might as well add the CNC library directory while at it). 4) Instead of using the full path for the libraries, just add them by name to "projects -> Properties -> Linker -> Command Line -> Additional Options" e.g. "cnc_vc10.lib tbb.lib" without quotes. Also, last I checked, the 64 bit build of CNC's examples all use the 32 bit toolchain so they won't work if you try to compile them. |
| April 23, 2012 2:10 AM PDT
Frank Schlimbach (Intel)
|
Hi Aaron, thanks a lot for your feedback! 1)+2): I have corrected the GettingStarted document on the web (the next update will have it fixed in the installation, too). 3): It works just fine with me. What other libs does it need which it doesn't find? 4): Yes, that's an alternative if you provided the lib-path, but it should work fine with absolute paths ia32/intel64 issues: Again, I can't reproduce the issues. Did you select "X64" as the solution platform (default is Win32)? ps: The email-list and the forum are monitored more closely. Technical questions have a better chance of getting answered there and provide better support for monitoring/following discussions. |
Trackbacks (29)
- Intel Software Network Blogs » Research at Intel Day 2009 - Tomorrow’s Ideas TODAY!
June 19, 2009 11:17 AM PDT - Intel Concurrent Collections now offers Linux support « SoftTalk – multicore and parallel programming
September 22, 2009 4:52 PM PDT - More about Haskell and Intel Concurrent Collections « SoftTalk – multicore and parallel programming
September 29, 2009 9:04 AM PDT - Parallel Programming Talk #50 – Listener Juan asks, "What language should I study to develop multi core algorithms and applications?"
October 7, 2009 5:40 PM PDT - Parallel Programming Talk #52 – Marco Melo, CEO of Virtos Backups
October 28, 2009 12:41 PM PDT - Intel Software Network Blogs » Parallelizing Your C++ Programs
January 25, 2010 8:53 AM PST - Parallelizing Your C++ Programs
January 25, 2010 9:21 AM PST - Parallelizing Your C++ Programs
January 25, 2010 5:00 PM PST - Parallel Programming Talk #79 – Listener Question “OpenMP and explicit threads?” – Intel Software Network Blogs
June 4, 2010 5:00 PM PDT - Parallel Programming Talk #79 – Listener Question "OpenMP and explicit threads?"
June 4, 2010 7:21 PM PDT - Introducing…Concurrent Collections for distributed memory systems (distCnC) – Intel Software Network Blogs
June 15, 2010 9:35 AM PDT - Introducing…Concurrent Collections for distributed memory systems (distCnC)
June 15, 2010 12:40 PM PDT - Intel® Concurrent Collections (CnC) – 一个新的平行开发模式 – 英特尔® 软件网络博客 - 中文
July 5, 2010 2:55 AM PDT - 支持分布式内存系统的并行开发模式Concurrent Collections (CnC) – 英特尔® 软件网络博客 - 中文
July 7, 2010 2:01 AM PDT - Parallel Programming Talk #50 – Listener Juan asks, “What language should I study to develop multi core algorithms and applications?” – Intel Software Network Blogs
December 8, 2010 8:55 PM PST - Parallel Programming Talk #52 – Marco Melo, CEO of Virtos Backups – Intel Software Network Blogs
December 8, 2010 8:56 PM PST - A practical guide to Intel Concurrent Collections for C++ « SoftTalk – multicore and parallel programming
December 16, 2010 1:02 AM PST - Intel is no longer just a hardware company | Business Computing World
June 16, 2011 4:51 AM PDT - In Colorado? Join us at the Intel Concurrent Collections workshop (Sep 7) – Blogs - Intel® Software Network
August 31, 2011 8:55 PM PDT - Intel® Concurrent Collections with Intel Scientist Kath Knobe – Parallel Programming Talk #129 – Blogs - Intel® Software Network
November 18, 2011 5:20 PM PST - Intel® Concurrent Collections with Intel Scientist Kath Knobe – Parallel Programming Talk #129 | ServerGround.net
November 18, 2011 5:41 PM PST - Intel Updates Parallel C++ Tool » Techno Capital
April 27, 2012 10:30 AM PDT - Intel Updates Parallel C++ Tool | LATEST TECH BLOG
April 27, 2012 2:57 PM PDT - Intel Updates Parallel C++ Tool | LATEST TECH BLOG
April 27, 2012 2:57 PM PDT - Intel Updates Parallel C++ Tool | latest techn
April 28, 2012 11:48 AM PDT - Intel Updates Parallel C++ Tool - Fundamental Technology Partners Inc.
April 29, 2012 12:40 AM PDT - Intel Updates Parallel C++ Tool - Fundamental Technology Partners Inc.
April 29, 2012 1:38 AM PDT - Intel Updates Parallel C++ Tool - Fundamental Technology Partners Inc.
April 29, 2012 1:38 AM PDT - Chip Shot: C++ Software Developers Get a Multicore Power-Up | hardware reperature
May 2, 2012 4:37 AM PDT
Leave a comment 
Frank Schlimbach (Intel)
| ||
Kathleen Knobe (Intel)
|



Sanjay