parallel for
いくつかの反復までループする必要がある C++ プログラムを使用しています。各反復は、アルゴリズムの可能な解を計算します。有効な解が見つかったら、ループを終了したいと思います (追加の反復が数回行われれば問題ありません)。の最初から反復回数を固定する必要があることはわかっていparallel for
ますが、次のコードでは反復回数を増やしていないため、スレッドが現在の反復を続行する前に条件をチェックするという保証はありますか?
void fun()
{
int max_its = 100;
#pragma omp parallel for schedule(dynamic, 1)
for(int t = 0; t < max_its; ++t)
{
...
if(some condition)
max_its = t; // valid to make threads exit the for?
}
}