我有这个顺序代码:
int fib(int n) {
int x, y;
if (n < 2)
return n;
x = fib(n-1);
y = fib(n-2);
return x + y;
}
而这个并行代码:
int fib(int n) {
int x, y;
if (n < 2)
return n;
#pragma omp task shared(x)
x = fib(n-1);
#pragma omp task shared(y)
y = fib(n-2);
#pragma omp taskwait
return x + y;
}
openmp 并行代码比串行代码慢。我使用 tdm-gcc 7.4。我在斐波那契运行时没有打开其他程序。怎么了?