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