【发布时间】:2020-06-25 15:01:48
【问题描述】:
我不明白下面的问题:
指定代码在使用-fopenmp 编译并使用两个 OpenMP 线程执行时可能的输出:
int x = 0;
#pragma omp parallel
{
#pragma omp single
{
#pragma omp task
{
x++;
printf("task 1: %d\n", x);
}
#pragma omp task
{
x++;
printf("task 2: %d\n", x);
}
}
}
-fopenmp 对此有何“特殊”影响?
这些是可能的输出吗:
- 任务 1:1,任务 2:2
- 任务 2:1,任务 1:2
其他可能的输出呢?
【问题讨论】:
-
-fopenmp最“特殊”的影响可能是它可以处理代码中的所有 OpenMPpragmas。
标签: multithreading parallel-processing openmp