The CodePlex Parallel STL project is the Microsoft prototype of the
Working Draft, Technical Specification for C++ Extensions for Parallelism
a proposal to add a set of high level parallel algorithms to the next major version of the ISO C++.
The goal of this project is to provide a realistic implementation that validates the proposal.
Parallel STL provides parallel implementations of the existing STL algorithms with different executions policies. Therefore, if you are familiar with the STL, you will find using Parallel STL straightforward.
So, let's get started. Imagine that you have a program that uses STL in the following way:
using namespace std;
Parallelizing it is as simple as adding the par
using namespace std::experimental::parallel;
sort(par, v.begin(), v.end());
Of course, parallelizing your code will not always be so easy. Keep this in mind:
- You need to find bottlenecks in your program that would benefit from parallelism.
- You need to watch out for data dependencies and potential deadlocks.
- You might need to rewrite some parts of your program to be eligible for parallelism.
We encourage you to try out the samples we included, as well as, of course, read the
technical specification document
Please also note that this first prototype is missing some functionality that will be added later on. You can find more information
. We also have a few bugs that we’re planning to address, see
What You Will Need
- Visual Studio 2013 RTM (or post-RTM VS updates)
- Windows 7 or later versions
Your feedback is very important and welcome!
To get engaged, you can create a
or open and
. You can also contact us directly: parallelstl at Microsoft dot com.
"Parallel STL - Democratizing Parallelism in C++" blog - Artur Laksberg