OpenMP* Features and Extensions Supported in Intel® oneAPI DPC++/C++ Compiler

Published: 01/29/2021  

Last Updated: 05/10/2022

By Subarnarekha Ghosal

The Intel® oneAPI DPC++/C++ Compiler (DPCPP and ICX) is the new LLVM-based compiler and is part of the Intel® oneAPI toolkits. This article describes OpenMP specification features and Intel's OpenMP extensions supported in Intel® oneAPI DPC++/C++ Compiler releases. Information regarding Intel® oneAPI Toolkits versions maps to which specific compiler versions and packages can be found here.

Similar information for the Intel® Fortran Compiler (IFX) regarding the Language and OpenMP features implemented can be found here.

OpenMP 4.5

All features of OpenMP 4.5 are implemented in version 2021.1.

OpenMP 5.0

Following is the status and version of compiler support for OpenMP 5.0 features beyond OpenMP 4.5

Feature Available from ICX version? Comments
requires directive for unified_shared_memory 2021.1  
declare variant subset to support target variant dispatch (an Intel extension) 2021.1  
teams without enclosing target 2021.1  
canonical loop: allow != 2021.1  
default nonmonotonic schedule 2021.1  
nontemporal and order(concurrent) clauses for SIMD 2021.1  
loop construct 2021.1  
task/taskloop in_reduction 2021.1  
taskgroup task_reduction 2021.1  
allocate directive, allocate/allocator clauses 2021.1  
use_device_addr clause 2021.1  
nested declare target constructs in C/C++ 2021.1  
master taskloop
parallel master
parallel master taskloop
master taskloop simd
parallel master taskloop simd
2021.1  
teams loop 2021.1  
acq_rel, acquire, release clauses for atomic and flush 2021.1  
relaxed and hint clauses for atomic 2021.1  
conditional lastprivate 2021.1  
close map-type-modifier 2021.1  
defaultmap extensions 2021.1  
omp_get_supported_active_levels 2021.1  
omp_set_affinity_format
omp_get_affinity_format
omp_display_affinity
and omp_capture_affinity
OMP_DISPLAY_AFFINITY
OMP_AFFINITY_FORMAT
2021.1  
omp_get_device_num 2021.1  

omp_pause_resource

omp_pause_resource_all

2021.1  
OMP_TARGET_OFFLOAD 2021.1  
OMPT support 2021.1  
scan No  
Metadirectives No  
in, out, and inout dependence-type 2021.1  
mutexinoutset and depobj dependence-type No  
detach clause No  
declare mapper 2021.3  
depend clause on taskwait No  
depobj directive No  
iterators No  
Target in_reduction clause 2022.0  
Nowait clause for taskwait depend 2022.0  
OMP_ALLOCATOR 2021.1  
OMP_DEBUG 2021.1

Host: Supported

Device: Not Supported

OMP_TOOL

OMP_TOOL_LIBRARIES

omp_control_tool

2021.1

Host: Supported

Device: Minimal Support

OpenMP 5.1

The following are OpenMP 5.1 features supported beyond OpenMP 5.0

Feature Available from ICX version?
Align clause/modifier 2021.4
dispatch 2021.3
declare variant subset to support dispatch 2021.3
interop 2021.3
Scope 2022.0
thread_limit clause for target 2021.1
tile construct 2022.1
OMP_DISPLAY_ENV 2021.1

OMP_NUM_TEAMS

OMP_TEAMS_THREAD_LIMIT

2021.1

Extensions

Extension Available from ICX version? Comments
target variant dispatch construct 2021.1 Became the OMP5.1 dispatch construct
Unified Shared Memory runtime APIs: omp_target_alloc_host, omp_target_alloc_shared, omp_target_alloc_device 2021.1 Proposed to be part of OpenMP 6.0 spec

References

OpenMP* Specification

The OpenMP* specifications are available at openmp.org.

Intel Documentation

Intel® oneAPI DPC++/C++ Compiler Developer Guide and Reference

OpenMP* Features Implemented in Intel® Fortran and C++ Compiler Classic

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.