UNB/ CS/ David Bremner/ teaching/ cs3383/ lectures/ 40.0-demos/ fib.c
/* compile with -fopenmp */
#include <stdio.h>

long fib(int n) {
  long x, y;
  if (n<=1)
    return n;
  else {
    #pragma omp task shared(x)
    x=fib(n-1);
    y=fib(n-2);
    #pragma omp taskwait
    return x+y;
  }
}

int main(char **argv, int argc) {
  long f;
#pragma omp parallel
  {
    f = fib(30);
  }
  printf("fib(30)=%ld\n", f);
}