Is OpenMP available in High Sierra LLVM?

后端 未结 2 1619
故里飘歌
故里飘歌 2020-12-01 13:15

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

相关标签:
2条回答
  • 2020-12-01 13:50

    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?

    0 讨论(0)
  • 2020-12-01 13:58

    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.

    0 讨论(0)
提交回复
热议问题