Extensions for parallelism
Расширения 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)
|
применяет функтор, затем выполняет редукцию без сохранения порядка
(шаблон функции) |
|
применяет функтор, затем вычисляет эксклюзивное сканирование
(шаблон функции) |
|
|
применяет функтор, затем вычисляет инклюзивное сканирование
(шаблон функции) |
|