Ami*_*mir 8 c openmp llvm-clang
所以我尝试将OpenMP与最新版本的clang一起使用clang version 3.4.2 (tags/RELEASE_34/dot2-final).按照程序编译并添加PATH omp.h,然后使用以下命令编译我的hello.c:
clang -fopenmp hello.c
Run Code Online (Sandbox Code Playgroud)
然后运行它,仍然不能使用超过1个线程:
Bash-4.1$ ./a.out
Hello from thread 0, nthreads 1
Run Code Online (Sandbox Code Playgroud)
PS:我试图手动导出,export OMP_NUM_THREADS=8但也没有解决任何问题.有任何想法吗?
更新:这是hello.c:
#include <omp.h>
#include <stdio.h>
int main() {
#pragma omp parallel
printf("Hello from thread %d, nthreads %d\n", omp_get_thread_num(), omp_get_num_threads());}
Run Code Online (Sandbox Code Playgroud)
尽管事实上,关于我原来问题的时间戳有点晚了,但我想在这里提到答案,这样至少可以节省人们面临类似问题的时间。
\n\nLLVM 本身目前不支持Openmp开箱即用。omp您可以使用英特尔运行时支持使其编译并运行标记的代码。但是,如果您想要一个干净的支持 OpenMP, OpenMP-Clangclang上有该项目的主干,您可以克隆和构建。目前支持的是 OpenMP 3.1 规范,很快就会支持 OpenMP 4.0 规范:
$ git clone https://github.com/clang-omp/llvm_trunk llvm\n$ git clone https://github.com/clang-omp/compiler-rt_trunk llvm/projects/compiler-rt\n$ git clone https://github.com/clang-omp/clang_trunk llvm/tools/clang\nRun Code Online (Sandbox Code Playgroud)\n\n不要忘记根据需要构建 此后Intel\xc2\xae OpenMP* Runtime Library的内容omp.h/path/to/llvm/projects/openmp/runtime/lin_32e/lib/libomp.so