0

对于下面的代码,我得到一个错误: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;
        }
    }
}
4

1 回答 1

0

我试过#pragma omp parallel reduction (+: sum)了,它奏效了。这里有几种用法:http reduction: //msdn.microsoft.com/en-us/library/88b1k8y5 (v=vs.80).aspx

于 2012-07-10T16:55:58.430 回答