【发布时间】:2017-11-06 21:45:49
【问题描述】:
在苹果在 macOS 10.13 中提供的默认 LLVM High Sierra 中,OpenMP 终于可用了吗?它已经在主 LLVM 中可用一年多了。
(问这个问题的另一种方式可能是新的 Apple LLVM 是基于哪个版本的 LLVM)
【问题讨论】:
标签: macos openmp llvm-clang
在苹果在 macOS 10.13 中提供的默认 LLVM High Sierra 中,OpenMP 终于可用了吗?它已经在主 LLVM 中可用一年多了。
(问这个问题的另一种方式可能是新的 Apple LLVM 是基于哪个版本的 LLVM)
【问题讨论】:
标签: macos openmp llvm-clang
标准 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的路径。
【讨论】:
-Xpreprocessor -fopenmp,因为-Xclang 似乎没有记录。我根据您的建议在这里添加了一个自制公式 PR:github.com/Homebrew/homebrew-core/pull/20589。
不,它不是(官方)。 Apple LLVM 大致基于 4.0,但省略了 OpenMP 模块。您甚至可以在设置卸载目标的帮助中看到剩余的 OpenMP 选项,但它不支持 OpenMP。
$ clang++ --help | grep openmp
-fopenmp-targets=<value>
Apple,添加 OpenMP 将是科学研究人员的一大福音!
注意:Brew 支持构建 OpenMP 库!使用:
brew install libomp
CMake 已接受一个补丁,如果用户使用目标系统,该补丁将允许用户在 CMake 3.12 中获得正确的编译和链接行 OpenMP。
【讨论】: