Apple、High Sierraで提供されるデフォルトのLLVMで、OpenMPがついに利用可能になりましたか?メインのLLVMで1年以上利用可能になりました。
(質問をする別の方法は、LLVMのどのバージョンが新しいApple LLVMに基づいているか)かもしれません)
標準のAppleのclangはOpenMPをサポートしています。彼らはただドライバーオプションを無効にしました。ただし、代わりに次のようにフロントエンドオプションを使用できます:_clang -Xclang -fopenmp <you_program> -I <path to omp.h> -L <path to libomp.dylib> -lomp
_
また、DYLD_LIBRARY_PATH環境変数を設定する必要があります:_export DYLD_LIBRARY_PATH=<path to libomp.dylib>
_
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
_
このディレクトリの後に、_~/libomp/openmp
_には2つのサブディレクトリがあります。include
とlib
は、それに応じて_omp.h
_へのパスおよび_libomp.dylib
_へのパスとして使用する必要があります。
C++はOpenMPでコンパイル可能でMacOSでブーストできますか? に対する私の答えも参照してください。
いいえ、そうではありません(公式には)。 Apple LLVMはおおよそ4.0に基づいていますが、OpenMPモジュールは省略されています。オフロードターゲットを設定するためのヘルプに残りのOpenMPオプションも表示されますが、OpenMPはサポートされていません。
$ clang++ --help | grep openmp
-fopenmp-targets=<value>
Apple、OpenMPを追加することは、科学研究者にとって大きな恩恵になるでしょう!
注:BrewはOpenMPライブラリーの構築をサポートしています!使用する:
brew install libomp
ユーザーがターゲットシステムを使用している場合、CMake3.12で正しいコンパイルおよびリンクラインOpenMPを取得できるようにするパッチがCMakeに受け入れられました。