web-dev-qa-db-fra.com

OpenMP est-il disponible dans High Sierra LLVM?

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)

8
Henry Schreiner

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?

7
Alexey Bataev

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.

2
Henry Schreiner