A high-productivity C++ library for parallel programming across devices using Data Parallel C++ (DPC++) APIs.
oneDPL (oneAPI DPC++ Library) is a C++ library that provides high-productivity APIs for parallel programming across heterogeneous devices. It implements the oneAPI specification and works with the Intel® oneAPI DPC++/C++ Compiler to simplify development of high-performance parallel applications. The library extends standard C++ algorithms with parallel execution policies for CPUs, GPUs, and other accelerators.
C++ developers building high-performance parallel applications that need to run across heterogeneous computing devices including CPUs and GPUs. Particularly relevant for those working in scientific computing, data analytics, and other compute-intensive domains.
Developers choose oneDPL for its productivity-focused approach to parallel programming, providing familiar C++ interfaces while enabling cross-architecture performance. It reduces the complexity of writing parallel code for heterogeneous systems and is part of the standardized oneAPI ecosystem.
oneAPI DPC++ Library (oneDPL) https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/dpc-library.html
Extends standard C++ algorithms with parallel execution policies for CPUs, GPUs, and accelerators via DPC++, enabling portable performance as highlighted in the key features.
Builds on C++ STL concepts with parallel extensions, reducing the learning curve for developers already comfortable with standard C++, as noted in the philosophy.
Minimizes Data Parallel C++ programming efforts by reducing boilerplate code, simplifying parallel patterns as described in the GitHub description.
Implements the oneAPI specification and aligns with C++ standards, ensuring interoperability and future-proofing, as emphasized in the documentation.
Requires installation of the Intel oneAPI Base Toolkit and DPC++ compiler, tying the project to Intel's ecosystem and limiting compatibility with other compilers.
Prerequisites include specific system requirements and toolkit installation, which is more involved than using header-only or compiler-agnostic libraries.
As part of the relatively new oneAPI specification, the community and third-party support are still growing compared to established alternatives like OpenMP or CUDA.
A fast multi-producer, multi-consumer lock-free concurrent queue for C++11
A General-purpose Task-parallel Programming System in C++
A simple C++11 Thread Pool implementation
ArrayFire: a general purpose GPU library.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.