我有一个依赖于 OpenMP 进行并行化的量子力学 C++ 代码的专有库(>150,000 行)。这段代码过去可以用 Xcode 4.6 及其真正的GCC 编译器很好地编译,但 Xcode 5 附带的 LLVM 编译器似乎不支持 OpenMP。我的代码是在 Mac 上开发的,但需要移植到非 Apple 硬件上,例如大规模并行超级计算机,因此重新编写代码不是一种选择。有谁知道可以使用的合适的编译器?非常感谢您的帮助。
问问题
3542 次
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 设置。步骤基本上是:
- 安装自制软件。
- 安装 llvm 与
brew install llvm
. - “构建设置”,然后是“编辑器”»“添加构建设置”»“添加用户定义的设置”,键为
CC
,值为/usr/local/opt/llvm/bin/clang
. - 搜索“启用模块”并将其关闭。
- 添加
/usr/local/opt/llvm/lib
到“图书馆搜索路径”。 - 添加
/usr/local/opt/llvm/lib/clang/7.0.1/include
到“标题搜索路径”。(版本号可能因您的安装而异。) - 将
-fopenmp
编译标志添加到“其他 C 标志”。 - 关闭“在构建时启用索引功能”。
- 添加
/usr/local/opt/llvm/lib/libiomp5.dylib
到“构建阶段”»“将二进制文件与库链接”。
于 2019-03-09T21:24:00.580 回答