Namespaces
Variants

Extensions for parallelism

From cppreference.net

Расширения C++ для параллелизма, ISO/IEC TS 19570:2015 определяет следующие новые компоненты для стандартной библиотеки C++:

Содержание

Политики выполнения

Техническая спецификация параллелизма описывает три политики выполнения: sequential , parallel , и parallel+vector , и предоставляет соответствующие типы и объекты политик выполнения. Пользователи могут выбирать политику выполнения статически, вызывая параллельный алгоритм с объектом политики выполнения соответствующего типа, или динамически, используя стирающий типы класс execution_policy .

Реализации могут определять дополнительные политики выполнения в качестве расширения. Семантика параллельных алгоритмов, вызываемых с объектом политики выполнения типа, определённого реализацией, определяется реализацией.

Определено в заголовочном файле <experimental/execution_policy>
типы политик выполнения
(класс)
глобальные объекты политик выполнения
(константа)
динамическая политика выполнения
(класс)
проверяет, представляет ли класс политику выполнения
(шаблон класса)

Списки исключений

Определено в заголовке <experimental/exception_list>
исключения, возникшие во время параллельных выполнений
(класс)

Параллелизованные версии существующих алгоритмов

TS предоставляет распараллеленные версии следующих 69 алгоритмов из <algorithm>, <numeric> и <memory>:

Алгоритмы стандартной библиотеки, для которых предоставляются распараллеленные версии

Новые алгоритмы

Определено в заголовочном файле <experimental/algorithm>
аналогично std::for_each , но возвращает void
(шаблон функции)
применяет функциональный объект к первым n элементам последовательности
(шаблон функции)
Определено в заголовочном файле <experimental/numeric>
(parallelism TS)
аналогично std::accumulate , но без сохранения порядка
(шаблон функции)
аналогично std::partial_sum , исключает i-й входной элемент из i-й суммы
(шаблон функции)
аналогично std::partial_sum , включает i-й входной элемент в i-ю сумму
(шаблон функции)
(parallelism TS)
применяет функтор, затем выполняет редукцию без сохранения порядка
(шаблон функции)
применяет функтор, затем вычисляет эксклюзивное сканирование
(шаблон функции)
применяет функтор, затем вычисляет инклюзивное сканирование
(шаблон функции)