Dans la LLVM par défaut fournie par Apple dans macOS 10.13, High Sierra, OpenMP est-il enfin disponible? Il est disponible dans la LLVM principale depuis plus d’un an maintenant.
(Une autre façon de poser la question pourrait être de savoir quelle version de LLVM est basée sur la nouvelle LLVM d’Apple)
Le standard Apple prend en charge OpenMP. Ils ont juste désactivé l'option du pilote. Mais vous pouvez utiliser l'option frontend de cette façon: clang -Xclang -fopenmp <you_program> -I <path to omp.h> -L <path to libomp.dylib> -lomp
De plus, vous devez définir la variable d'environnement DYLD_LIBRARY_PATH: export DYLD_LIBRARY_PATH=<path to libomp.dylib>
Comment obtenir/construire 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
Après ce répertoire, ~/libomp/openmp
aura 2 sous-répertoires: include
et lib
, qui doivent être utilisés comme chemin vers omp.h
et le chemin vers libomp.dylib
en conséquence.
Voir aussi ma réponse à Le C++ est-il compilable avec OpenMP et boost sur MacOS?
Non, ce n'est pas (officiellement). La LLVM d’Apple est approximativement basée sur la version 4.0, mais le module OpenMP est laissé de côté. Vous pouvez même voir une option OpenMP restante dans l'aide permettant de définir des cibles de déchargement, mais elle ne prend pas en charge OpenMP.
$ clang++ --help | grep openmp
-fopenmp-targets=<value>
Apple, ajouter OpenMP serait une aubaine pour les chercheurs scientifiques!
Remarque: Brew prend en charge la construction de la bibliothèque OpenMP! Utilisation:
brew install libomp
Un correctif a été accepté dans CMake qui permettra aux utilisateurs d’obtenir la bonne ligne de compilation et de liaison OpenMP dans CMake 3.12 s’ils utilisent le système cible.