Xcode 5 及更高版本中的 OpenMP 支持



我有一个专有的量子力学库(>150,000行)C++代码,依赖于OpenMP进行平行化。这段代码曾经在Xcode 4.6和它真正的GCC编译器中编译得很好,但是Xcode 5附带的LLVM编译器似乎不支持OpenMP。我的代码是在Mac上开发的,但需要移植到非Apple硬件,例如大规模并行的超级计算机,因此无法重写代码。有谁知道可以使用合适的编译器?非常感谢任何帮助。

当我测试 hpc.sourceforge.net 时,我从我的评论中回来,它对我来说就像一个魅力。

只需解压缩存档,如前所述:

sudo tar -xvf gcc-4.8-bin.tar -C /

如果需要,请更新您的 .profile 以默认使用 gcc 的 hpc 编译版本。

使用选项 -

fopenmp 编译程序,然后将其与选项 -lgomp 链接。

"有谁知道可以使用合适的编译器?"

MacOS 上的英特尔编译器支持 OpenMP,就像在其他平台上一样。http://software.intel.com/en-us/intel-software-development-products-for-mac-os-x

当然,它们要花钱,但可能值得。

(完全披露:我在编译器使用的 OpenMP 运行时上为英特尔工作)

请参阅 Xcode 中的 Clang + OpenMP 设置。步骤基本上是:

  1. 安装自制软件。
  2. 使用 brew install llvm 安装 llvm 。
  3. "构建设置",然后是"编辑器"»"添加构建设置"
  4. »"添加用户定义的设置",键为CC,值为/usr/local/opt/llvm/bin/clang
  5. 搜索"启用模块"并将其关闭。
  6. /usr/local/opt/llvm/lib添加到"库搜索路径"。
  7. /usr/local/opt/llvm/lib/clang/7.0.1/include添加到"标题搜索路径"。(版本号可能因安装而异。
  8. -fopenmp编译标志添加到"其他 C 标志"。
  9. 关闭"在构建时启用索引功能"。
  10. /usr/local/opt/llvm/lib/libiomp5.dylib添加到"构建阶段"»"将二进制文件与库链接"。

最新更新