Parallel Patterns Library (рус. Библиотека параллельных шаблонов) — библиотека Microsoft, предназначенная для использования разработчиками на C++ и предлагающая функции для многоядерного программирования, которая поддерживается начиная с Visual Studio 2010 и похожа по названию на Intel Threading Building Blocks[1][2][3]. По стилю эта библиотека напоминает стандартную библиотеку C++ и хорошо сочетается с новыми возможностями стандарта C++ 11, также реализованными в Visual Studio 2010.
Например, этот последовательный цикл:
for (int x=0; x < width; ++x) { //Something parallelizable }
Может быть превращён параллельный цикл, путём замены for на parallel_for:
for
parallel_for
#include <ppl.h> // . . . Concurrency::parallel_for (0, width, [=](int x) { //Something parallelizable });
Код подразумевает, что цикл параллелен, а вся остальная работа выполняется библиотекой.
MSDN[4] описывает библиотеку параллельных шаблонов как «императивную модель программирования, обеспечивающую масштабируемость и простоту использования для разработки параллельных приложений», которая используется для планирования и управления ресурсами, а для использования в параллельных приложениях предоставляются общие, безопасные типы алгоритмов и контейнеры.
int main() { printf("Hi"); return 0; }