Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7944 Discussions

Intel OpenMP vs LLVM OpenMP runtimes

Richard__Jérôme
1,365 Views

Hello,

What are the differences between the Intel OpenMP runtime and the one use by LLVM?
According to https://www.openmprtl.org , the Intel C/C++ compilers and LLVM compilers use the same implementation (found here: https://openmp.llvm.org/).
Is it correct? Has it always been right in the past (such as for ICC 2014 and ICC 2016) ?

Thank You.
 

0 Kudos
2 Replies
JenniferJ
Moderator
1,365 Views

Good question.

Yes, that's correct. 

ICC 18.0 or 19.0's openmp runtime is also backwards compatible with older ICC if you're not using the new features in the newer ICC. 

Jennifer 

0 Kudos
James_C_Intel2
Employee
1,365 Views

What are the differences between the Intel OpenMP runtime and the one use by LLVM?

Effectively none. They are compiled by different compilers, but use the same source code base (of course there may be bug fixes in one tree which haven't made it into the other, or into a release on either side, but the intent is that the code is the same), and they maintain an identical binary interface.

Similarly the runtime attempts to supply the interfaces used by GCC compiled code so that it can also be mixed into a single process with only one OpenMP runtime in it. (Having more than one leads to serious performance and potential correctness issues, so should be avoided).

 

Has it always been right in the past (such as for ICC 2014 and ICC 2016) ?

For as long as they have both existed, the LLVM and Intel OpenMP runtimes have been the same, however LLVM has only supported OpenMP since Clang 3.8.0 which was released in 2016, so the question about a 2014 release is moot.

 

0 Kudos
Reply