对于下面的代码,我收到错误: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;
}
}
}
答案 0 :(得分:0)
我尝试了#pragma omp parallel reduction (+: sum)
并且有效。 reduction
的几个用法在这里:http://msdn.microsoft.com/en-us/library/88b1k8y5(v=vs.80).aspx