【发布时间】:2022-01-19 15:44:42
【问题描述】:
希望有人知道这个问题的答案...
我的代码可以完美地与 openMP 一起编译(它使用 libsharp)。但是,我发现让 M1 Pro 芯片使用我拥有的所有 8 或 10 个内核是不可能的。
我将线程变量正确设置为export OMP_NUM_THREADS=10,以便代码正确识别它应该使用 10 个线程运行(见下图显示我的活动监视器的打印屏幕):
打印屏幕显示代码是为 Apple Silicon 编译的,使用 10 个线程,但可用的 CPU 不多。
有谁知道如何正确编译/设置线程数以便使用所有内核?
这在 x86 架构中是微不足道的。
【问题讨论】:
-
你使用的是哪个编译器?
-
clang 和 gcc 都显示这种行为。
-
我们是否有任何成功利用 M1 Mac 的 CPU 资源的 openmp 代码示例?
标签: multithreading openmp apple-m1 arm64