Parallel API#

The Parallel API in oneAPI DPC++ Library (oneDPL) is an implementation of the C++ standard algorithms with execution policies, as specified in the ISO/IEC 14882:2017 standard (commonly called C++17), as well as those added in C++20. It offers threaded and SIMD execution of these algorithms on Intel® processors implemented on top of OpenMP* and oneTBB, as well as data parallel execution on accelerators backed by SYCL* support in Intel® oneAPI DPC++/C++ Compiler.

Extending the capabilities of range algorithms in C++20, the Parallel API provides analogous parallel range algorithms that execute according to an execution policy.

In addition, oneDPL provides specific variations of some algorithms, including:

  • Segmented reduce

  • Segmented scan

  • Vectorized search algorithms

  • Sorting of key-value pairs

  • Conditional transform

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 asynchronous algorithms.