Parallel Patterns Library

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Parallel Patterns Library
Язык программирования C++

Parallel Patterns Library (рус. Библиотека параллельных шаблонов) — это библиотека Microsoft, разработанная для использования разработчиками на C++, которая предоставляет функции для многоядерного программирования[1][2]. Она поддерживается с Visual Studio 2010, и аналогична по назначению Intel Threading Building Blocks[3]. По стилю эта библиотека напоминает стандартную библиотеку C++ и хорошо сочетается с новыми возможностями стандарта C++ 11, также реализованными в Visual Studio 2010.

Например, этот последовательный цикл:

  for (int x=0; x < width; ++x)
  {
     //Something parallelizable
  }

Может быть превращён параллельный цикл, путём замены for на parallel_for:

  #include <ppl.h>
  // . . .
 Concurrency::parallel_for (0, width, [=](int x)
 {
     //Something parallelizable
 });

код подразумевает, что цикл распараллелен, но вся остальная работа выполняется библиотекой.

MSDN[4] описывает библиотеку Parallel Patterns как «императивную модель программирования, которая способствует масштабируемости и простоте использования для разработки параллельных приложений». Он использует Concurrency Runtime для планирования и управления ресурсами и предоставляет общие, безопасные типы алгоритмов и контейнеры для использования в параллельных приложениях.

Примечания[править | править код]

  1. The Visual C++ Weekly (12 марта 2011). Дата обращения: 6 июля 2019. Архивировано из оригинала 8 октября 2011 года.
  2. Ivor Horton. Introducing The Parallel Patterns Library // Ivor Horton's Beginning Visual C++ 2010. — John Wiley & Sons, 2010. — С. 844. — 1272 с. — ISBN 9780470930342.
  3. Daniel J. Duffy. Ch. 30. Parallel Patterns Language (PPL) // Financial Instrument Pricing Using C++. — John Wiley & Sons, 2018-10-01. — С. 961-992. — 1168 с. — ISBN 9780470971192.
  4. Библиотека параллельных шаблонов. Microsoft Docs (4 ноября 2016). Дата обращения: 31 июля 2019. Архивировано 12 мая 2020 года.