Parallel Patterns Library
The Parallel Patterns Library is a Microsoft library designed for use by native C++ developers that provides features for multicore programming. It was first bundled with Visual Studio 2010. It resembles the C++ Standard Library in style and works well with the C++11 language feature, lambdas, also introduced with Visual Studio 2010.
For example, this sequential loop:
for (int x=0; x < width; ++x) { // Something parallelizable }Can be made into a parallel loop by replacing the for with a parallel_for:
#include <ppl.h> // . . . Concurrency::parallel_for (0, width, [=](int x) { // Something parallelizable });This still requires the developer to know that the loop is parallelizable, but all the other work is done by the library.
MSDN describes the Parallel Patterns Library as an "imperative programming model that promotes scalability and ease-of-use for developing concurrent applications." It uses the Concurrency Runtime for scheduling and resource management and provides generic, type-safe algorithms and containers for use in parallel applications.
Sources and credits
This article is adapted from the Wikipedia article “Parallel Patterns Library”, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.
Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.