无法识别的编译指示:减少条款| OPENMP

时间:2012-07-10 12:35:53

标签: c++ openmp reduction

对于下面的代码,我收到错误:unrecognized #pragma: #pragma omp reduction (+: sum)。请注意,函数内部的for循环不是并行循环,因为函数本身已经并行化。你能说出问题出在哪里吗?

主要cpp文件:

#include <omp.h>

int main ()
{
    #pragma omp parallel
    {
        function ();
    }
}

另一个cpp文件,其中定义了函数

#include <omp.h>

void function ()
{
    T priv_var;

    // some calculations

    #pragma omp reduction (+: sum)  // sum is a shared variable
    {
        for (;;)
        {
            sum = sum + priv_var;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我尝试了#pragma omp parallel reduction (+: sum)并且有效。 reduction的几个用法在这里:http://msdn.microsoft.com/en-us/library/88b1k8y5(v=vs.80).aspx