gpt4 book ai didi

Linux 上的 Clang + OpenMP 仅使用 1 个 CPU 内核

转载 作者:行者123 更新时间:2023-12-04 15:09:46 29 4
gpt4 key购买 nike

我有以下代码:

int main(int argc, char** argv)
{
const int64_t N = 10000000000;
float* data = new float[N];
int64_t i;

omp_set_dynamic(0);
omp_set_num_threads(4);

#pragma omp parallel for
for(i = 0; i < N; ++i)
data[i] = i*i;

return 0;
}

如果我用 g++ 编译它,那么在运行时代码使用 4 个核心:
g++ -fopenmp -std=c++11 main.cpp

如果我用 clang++3.7 编译它,那么在运行时代码只使用 1 个核心:
clang++-3.7 -fopenmp -std=c++11 main.cpp

在这两种情况下,我都设置了:
OMP_NUM_THREADS=4

两个编译器都已从 Debian 测试存储库安装:
sudo apt-get install g++-5
sudo apt-get install clang-3.7

那么,有什么想法为什么叮当只使用一个核心?提前致谢。

最佳答案

this :

OpenMP 3.1 is fully supported, but disabled by default. To enable it, please use the -fopenmp=libomp command line option.



看来您错过了 -fopenmp=libomp在您的编译标志中。

关于Linux 上的 Clang + OpenMP 仅使用 1 个 CPU 内核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32695990/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com