OpenMP并行化for循环慢于顺序

时间:2017-12-09 11:58:11

标签: c++ c++11 openmp

我正在尝试通过充分利用所有可用内核来提高命令行工具的性能。我选择openmp因为它不会改变语义,对于像我这样的初学者来说非常简单。我描述了程序找出哪些循环运行了很多次(300+)并寻求并行化这些循环以试图使软件更快。

#pragma omp parallel for reduction(+:sum)
    for (int j = minx; j <= maxx; ++j) {
      sum += row_in[j] * kernel[j - x + offset];
    }

上面的代码使用OpenMP提供了正确的输出,但比顺序版本慢了几个数量级。

P.S 我愿意建议更快地制作具有较小交互(3-7)的循环,因为它们可以多次使用

0 个答案:

没有答案