Microsoft Parallel Patterns Library (PPL) против OpenMP - PullRequest
5 голосов
/ 14 марта 2012

Я хочу сравнить PPL и OpenMP в отношении их производительности, но не могу найти подробное исследование в Интернете.Я считаю, что не так много людей, которые имеют опыт с PPL.

Я занимаюсь разработкой своего программного обеспечения для Windows, используя Visual Studio 2010, и не хочу портировать его куда-нибудь еще в краткосрочной перспективе.

Если переносимость не является проблемой, и проблема заключается только в производительности, что вы думаете об этих двух методах?

Ответы [ 3 ]

4 голосов
/ 14 ноября 2012

На MSDN есть отличное сравнение свойств OpenMP и ConcRT (ядро PPL):

Модель OpenMP особенно хорошо подходит для высокопроизводительных вычислений, где очень большие вычислительные проблемы распределены по ресурсам обработки одного компьютера. В этом сценарии аппаратная среда известна, и разработчик может разумно рассчитывать на эксклюзивный доступ к вычислительным ресурсам при выполнении алгоритма.

Однако, другие, менее ограниченные вычислительные среды могут не подходить для OpenMP. Например, рекурсивные проблемы (такие как алгоритм быстрой сортировки или поиск в дереве данных) труднее реализовать с помощью OpenMP. Среда параллелизма дополняет возможности OpenMP, предоставляя библиотеку параллельных шаблонов (PPL) и библиотеку асинхронных агентов. В отличие от OpenMP, Concurrency Runtime предоставляет динамический планировщик, который адаптируется к доступным ресурсам и регулирует степень параллелизма при изменении рабочих нагрузок.

Итак, основные недостатки OpenMP:

  • модель статического планирования.
  • не содержит механизм отмены (очень большой недостаток, во многих случаях требуется алгоритм отмены).
  • не содержит подход агента совпадения.
  • проблемы с исключениями в паралельном коде.
2 голосов
/ 17 сентября 2012

Вероятно, это зависит от вашего алгоритма, однако это исследование показывает, что PPL может быть быстрее, чем OpenMP:

http://www.codeproject.com/Articles/373305/Visual-Cplusplus-11-Beta-Benchmark-of-Parallel-Loo

Serial : 72ms
OpenMP : 16ms
PPL    : 12ms
1 голос
/ 14 марта 2012

Если вас беспокоит только производительность, то, что я думаю о двух подходах, совершенно не имеет значенияЭтот вопрос решается эмпирическим подходом, а не аргументацией.

...