当前位置:   article > 正文

程序加速—并行编程_测#pragma omp parallel for num_threads加速

测#pragma omp parallel for num_threads加速

1、OpenMP加速

我们为了加速程序,往往会选择用openmp的方法。
有几个问题,经常遇到。总结一下。

1、运算结果与预期不一致。每次运算结果都不同。

#pragma omp parallel for  
    for(long i = 0; i< 10000000000; i++){
        sum += 1;
    }
    //cout << sum << endl; 每次运行结果不一样。
    //解决办法:用归约(效率与正确性兼顾)
    /*****************改进 *******************************/
#pragma omp parallel for reduction(+:sum) 
    for(long i = 0; i< 10000000000; i++){
        sum += 1;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

2、#pragma omp parallel for 的作用域

    #pragma omp parallel for reduction(+:sum) 
    for(long i = 0; i< 10000000000; i++){
        sum += 1;
    }
    for(long i = 0; i< 10000000000; i++){
        var += 1;
    }
    //有俩个for,都起作用吗?
    //答案:只有第一个(紧跟着pragma omp parallel for声明的)起了作用。 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/275953
推荐阅读
相关标签
  

闽ICP备14008679号