我试图在我的C++ 11代码中使用一些OpenMP多线程功能,如:
#pragma omp parallel for
Run Code Online (Sandbox Code Playgroud)
当我尝试编译时使用:
clang++ -std=c++11 -stdlib=libc++ -fopenmp main.cpp -o main.o
Run Code Online (Sandbox Code Playgroud)
我得到以下错误:
clang: error: unsupported option '-fopenmp'
Run Code Online (Sandbox Code Playgroud)
我或者尝试使用以下编译:
g++ -fopenmp main.cpp -o main.o
Run Code Online (Sandbox Code Playgroud)
但这给出了完全相同的错误.
非常感谢,如果您可以建议如何在Mac OS 10.12上编译具有OpenMP功能的C++ 11代码.关于这里和其他地方的帖子的其他问题解释了为OpenMP编译C代码,但是,我找不到C++ 11的任何内容.
我尝试安装libiomp时遇到错误,我收到错误:
$ brew install libiomp
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> Updated Formulae
ansible-cmdb djview4 khard oysttyer shyaml yazpp
asciinema2gif doctl macvim pazpar2 vala you-get
avro-c elixir mailhog python vdirsyncer youtube-dl
bash-git-prompt file-roller meson python3 vim
commandbox glib metaproxy rtv x265
consul-backinator gtkextra offlineimap s-search xonsh …Run Code Online (Sandbox Code Playgroud) 我希望找到for循环内部计算值的最大值,并在此处存储其对应的索引max_calc_value和i_max,下面是我的伪代码.我想知道是否可以在这里进行某种减少:
double max_calc_value = -DBL_MAX; // minimum double value
#pragma omp parallel for
for (int i = 20; i < 1000; i++) {
this_value = my_slow_function(large_double_vector_array, param1*i, .., param5+i);
if (this_value > max_calc_value){
max_calc_value = this_value;
i_max = i;
}
}
Run Code Online (Sandbox Code Playgroud)