Intel OpenMP vs LLVM OpenMP runtimes

Intel OpenMP vs LLVM OpenMP runtimes

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.
 

3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

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 

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.

 

Leave a Comment

Please sign in to add a comment. Not a member? Join today