並列化のオーバーヘッドを最小限に抑えるために、並列領域内に while を保持しながら、反復プロセスのコードを作成しようとしています。
コードはこのようなものです 問題はそれが決して終了しないことです。可能であれば、これについてのあなたの考えを教えてください
#include <stdio.h>
#include <omp.h>
int main(int argc, char **argv)
{
float error = 20;
#pragma omp parallel shared(error)
{
while (error > 5)
{
#pragma omp for reduction(-:error)
for (int i=0; i<10; ++i)
{
error -= 1;
}
}
}
fprintf(stderr, "Program terminated\n");
return 0;
}