6

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

4

3 回答 3

2

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

只需按照说明解压缩存档:

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

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

使用选项 -fopenmp 编译您的程序,然后使用选项 -lgomp 链接它。

于 2013-10-27T11:29:00.827 回答
1

“有人知道可以使用的合适的编译器吗?”

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

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

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

于 2013-10-07T11:03:02.887 回答
0

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

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