// OpenMP task version of finoacci(45) with less tasks #include using namespace std; int fib(int n) { int x, y; if (n < 2) return n; if (n < 30) return fib(n-1) + fib(n-2); #pragma omp task shared(x) x = fib(n-1); #pragma omp task shared(y) y = fib(n-2); #pragma omp taskwait return x + y; } int main() { int res, n = 45; #pragma omp parallel { #pragma omp single { res = fib(n); } } cout << "res=" << res << endl; return 0; }