Parallel Patterns Library Explained

The Parallel Patterns Library is a Microsoft library designed for use by native C++ developers that provides features for multicore programming.[1] 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)

Can be made into a parallel loop by replacing the for with a parallel_for:

#include // . . . Concurrency::parallel_for (0, width, [=](int x));

This still requires the developer to know that the loop is parallelizable, but all the other work is done by the library.

MSDN[2] 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.

Notes and References

  1. Web site: The Visual C++ Weekly . March 12, 2011 . August 14, 2011 . https://web.archive.org/web/20111008024206/http://paper.li/visualc/news/2011/03/12 . October 8, 2011 . dead .
  2. Web site: Parallel Patterns Library (PPL) on MSDN . 3 August 2021 .