私はこれらの2つのコードセクションを持っています
#pragma omp parallel
#pragma omp sections
{
#pragma omp section
printf("H");
#pragma omp section
printf("e");
#pragma omp section
printf("l");
#pragma omp section
printf("l");
#pragma omp section
printf("o");
#pragma omp section
printf(" ");
#pragma omp section
printf("W");
#pragma omp section
printf("o");
#pragma omp section
printf("r");
#pragma omp section
printf("l");
#pragma omp section
printf("d");
#pragma omp section
printf("!");
}
と
char word[] = "Hello World!";
int n;
#pragma omp parallel for
for(n=0; n<12; n++)
{
printf("%c", word[n]);
}
最初のものは常に印刷Hello World!
しますが、2番目のものは時々印刷しますHello World!
そして時々印刷しますHelld!lo Wor
最初の1つが決定論的で、もう1つが決定論的ではないのはなぜですか?