我有一个专有的库(> 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以默认使用hpc编译的gcc版本。
使用选项-fopenmp编译程序,然后将其与选项-lgomp链接。
“有没有人知道可以使用的合适的编译器?”
MacOS上的英特尔编译器支持OpenMP,就像在其他平台上一样。 http://software.intel.com/en-us/intel-software-development-products-for-mac-os-x
当然,他们花钱,但他们可能是值得的。
(完全披露:我在英特尔的编译器使用的OpenMP运行时工作)
见Clang + OpenMP Setup in Xcode。步骤基本上是:
brew install llvm
安装llvm。CC
的键和/usr/local/opt/llvm/bin/clang
的值“Build Settings”然后“Editor”»“Add Build Setting”»“Add User Defined Setting”。/usr/local/opt/llvm/lib
添加到“Library Search Paths”。/usr/local/opt/llvm/lib/clang/7.0.1/include
添加到“标题搜索路径”。 (版本号可能因安装而异。)-fopenmp
编译标志添加到“其他C标志”。/usr/local/opt/llvm/lib/libiomp5.dylib
添加到“Build Phases”»“Link Binary with Libraries”。