我有以下顺序代码:
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。我没有在Fibonacci运行时打开其他程序。怎么了?