以下のコードでは、エラーが発生します:unrecognized #pragma: #pragma omp reduction (+: sum)
。関数自体はすでに並列化されているため、関数内のforループはparallel-for-loopではないことに注意してください。問題はどこにあるのでしょうか?
メイン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;
}
}
}