首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >苹果硅M1 Pro上的MPI和M1

苹果硅M1 Pro上的MPI和M1
EN

Stack Overflow用户
提问于 2022-03-06 14:49:24
回答 1查看 1.5K关注 0票数 0

所以,必须有人提出这样一个关于苹果硅的问题。长话短说,我需要编译并运行一个C++代码,该代码在MBP M1 pro (使用基于arm的体系结构)上与和OpenMP混合运行。代码在典型的Intel x86体系结构上运行得非常好。而且,为了完成任务,Mac是蒙特利。此外,我不通过IDE (例如XCode)编译/运行,而是通过Makefile直接从终端编译/运行。

我还没有找到这样一个问题的明确答案。我试着自己设置一些东西,但这远远超出了我的舒适范围。此外,我相信回答这样一个问题将有助于将来使用这些Mac进行工作的开发人员:)

到目前为止,我知道Xcode附带的已安装的Clang编译器不支持OpenMP (-fopenmp)或识别MPI (mpirun)。因此,我安装了"brew“和"llvm”版本,它应该通过OpenMP支持多线程指令。至于MPI库,我通过"libomp“安装了"brew”库。所有这些都应该在苹果的硅上运行。

但是,现在的环境到处都是,因为系统有两个Clang编译器:

通过brew预装Xcode (默认)

  • one,位于:

我不知道该怎么做。简单的解决方案可能是将编译器的路径更改为/opt/homebrew/目录中的路径,但是我怀疑这可能会破坏系统中的许多东西。

如果你能帮忙,我(和其他许多人)会非常感激,以防有人以前有过类似的经验。

EN

回答 1

Stack Overflow用户

发布于 2022-09-03 10:37:57

要使用Homebrew的Clang,您需要设置路径和相应的编译器标志。

实际上,在安装llvm (或尝试brew info llvm)之后,Homebrew已经给出了相应的建议和提示:

代码语言:javascript
运行
复制
To use the bundled libc++ please add the following LDFLAGS:
  LDFLAGS="-L/opt/homebrew/opt/llvm/lib -Wl,-rpath,/opt/homebrew/opt/llvm/lib"

llvm is keg-only, which means it was not symlinked into /opt/homebrew,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.

If you need to have llvm first in your PATH, run:
  echo 'export PATH="/opt/homebrew/opt/llvm/bin:$PATH"' >> ~/.zshrc

For compilers to find llvm you may need to set:
  export LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
  export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"

您需要将这些标志转发到构建设置中,也就是说,如果您有来自CMake/ make /任何内容的构建文件,则需要确保使用或转发相应的标志。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71371314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档