Parallel API#

Parallel API is an implementation of the C++ standard libraries algorithms and execution policies, as specified in the ISO/IEC 14882:2017 standard (commonly called C++17). The implementation supports the unsequenced execution policy and the shift_left/shift_right algorithms, which are specified in the final draft of the C++ 20 standard (N4860). For more details see the C++ Standard Execution Policies. oneAPI DPC++ Library (oneDPL) provides specific versions of the algorithms, including:

  • Segmented reduce

  • Segmented scan

  • Vectorized search algorithms

Parallel API offers support for the parallel and vectorized execution of algorithms on Intel® processors and heterogeneity support with a DPC++ based implementation for device execution policies. For sequential execution, oneDPL relies on an available implementation of the C++ standard library.

The utility API includes iterators and function object classes. The iterators implement zip, transform, complete permutation operations on other iterators, and include a counting and discard iterator. The function object classes provide minimum, maximum, and identity operations that may be passed to algorithms such as reduce or transform.

oneDPL also includes an experimental implementation of range-based algorithms with their required ranges and Async API.