OpenMP临界区的意外性能提升

时间:2011-08-26 15:52:11

标签: c++ c performance openmp

为什么我使用以下代码在执行时间方面有好处?

#pragma omp parallel for
for(i=0; i<size; i++)
{
  #pragma omp  critical
  {
    funcall1();
    funcall2();

    for(j=0;j<size2;j++)
    {
      funcall3();
     }

  }

}

它运行两次串行版本,但我不知道为什么

1 个答案:

答案 0 :(得分:0)

看起来第二个变量j可以进行范围优化,它可能会展开。