小编sap*_*sap的帖子

在Mac OS上使用OpenMP和C++ 11

我试图在我的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)

c++ openmp c++11 macos-sierra

15
推荐指数
1
解决办法
9454
查看次数

在C++ 11中使用OpenMP查找计算值的最大值

我希望找到for循环内部计算值的最大值,并在此处存储其对应的索引max_calc_valuei_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)

c++ openmp c++11

3
推荐指数
1
解决办法
1452
查看次数

标签 统计

c++ ×2

c++11 ×2

openmp ×2

macos-sierra ×1