gpt4 book ai didi

clang OpenMP 不支持 omp_set_num_threads?

转载 作者:太空狗 更新时间:2023-10-29 15:41:57 28 4
gpt4 key购买 nike

我有以下程序:

#include <omp.h>
#include <stdio.h>
int main() {
omp_set_num_threads(4);
#pragma omp parallel
printf("Hello from thread %d, nthreads %d\n", omp_get_thread_num(), omp_get_num_threads());
}

然后我用 clang -fopenmp 编译了它并得到了输出

Hello from thread 0, nthreads 1

很明显设置线程数函数没有被调用。有没有人知道为什么会发生这种情况?

clang 版本(与 apt-get 一起安装):

Ubuntu clang version 3.5.0-4ubuntu2 (tags/RELEASE_350/final) (based on LLVM 3.5.0)
Target: x86_64-pc-linux-gnu
Thread model: posix

编辑:我还尝试将环境变量 OMP_NUM_THREADS 设置为 4。

EDIT2:我还为 OpenMP 安装了英特尔运行时。

最佳答案

正如 Mike 所建议的,问题是运行时库链接到了错误的位置。在我的系统 (Fedora) 上,它链接到 gcc 运行时 libgomp,而不是英特尔的 libiomp。

在您的可执行文件上运行 ldd 来检查这一点。它应该指向您按照指示构建运行时库时获得的库 here .

关于clang OpenMP 不支持 omp_set_num_threads?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26980864/

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