プレフィックス合計をオープン mp で並列化しようとしています。私のコードは
int a ,rem,d;
#pragma omp parallel private (a,rem,d)
for( d =0 ; d < N ; ++d) //need not parallelize
{
#pragma omp barrier
#pragma omp for
for (int k = 1; k <= size ; ++k) //has to be parallelized
{
a = k + (2 ^ (d+1))-1;
rem = a % (2^d);
if ( rem == 0 && a <= size)
{
b = k;
first[a]+= first[b];
}
}
}
コードを実行すると、浮動例外エラーが発生します。d の値を使用すると、エラーは int rem にあると思います。誰かが私を助けてくれませんか。d の各値の後、スレッドを同期する必要があるため、プラグマ バリアを使用しました。