Reputation: 1050
In the default LLVM provided by Apple in macOS 10.13, High Sierra, is OpenMP finally available? It has been available in main LLVM for more than a year now.
(another way to ask the question might be what version of LLVM is the new Apple LLVM based on)
Upvotes: 10
Views: 6712
Reputation: 1050
No, it is not (officially). The Apple LLVM is roughly based on 4.0, but the OpenMP module is left out. You can even see a remaining OpenMP option in the help to set offloading targets, but it does not support OpenMP.
$ clang++ --help | grep openmp
-fopenmp-targets=<value>
Apple, adding OpenMP would be a huge boon to science researchers!
Note: Brew has support for building the OpenMP library! Use:
brew install libomp
A patch has been accepted into CMake that will allow users to get the correct compile and linking line OpenMP in CMake 3.12 if they use the targets system.
Upvotes: 3
Reputation: 438
Standard Apple's clang supports OpenMP. They just disabled the driver option. But you can use the frontend option instead this way: clang -Xclang -fopenmp <you_program> -I <path to omp.h> -L <path to libomp.dylib> -lomp
Also, you need to set DYLD_LIBRARY_PATH environmental variable: export DYLD_LIBRARY_PATH=<path to libomp.dylib>
How to get/build libomp.
$ cd
$ svn co http://llvm.org/svn/llvm-project/openmp/trunk libomp
$ cd libomp
$ mkdir build && cd build
$ cmake -DCMAKE_INSTALL_PREFIX=~/libomp/openmp
$ make && make install
After this directory ~/libomp/openmp
will have 2 subdirs: include
and lib
, which should be used as the path to omp.h
and the path to libomp.dylib
correspondingly.
See also my answer to Is C++ compilable with OpenMP and boost on MacOS?
Upvotes: 9