Actual source code: ex69.c
1: #include <omp.h>
2: #include <petscsys.h>
4: /*
5: See the comments in ex69f.F90
6: */
7: int main(int argc, char **args)
8: {
9: double wtime_start, wtime_end, mpiwtime_start, mpiwtime_end;
10: double x[100];
11: int i, maxthreads;
13: PetscCall(PetscInitialize(&argc, &args, NULL, NULL));
14: wtime_start = omp_get_wtime();
15: mpiwtime_start = MPI_Wtime();
16: #pragma omp parallel for schedule(static)
17: for (i = 0; i < 100; i++) { x[i] = exp(3.0 * i); }
18: wtime_end = omp_get_wtime();
19: mpiwtime_end = MPI_Wtime();
20: printf("Wall clock time from MPI_Wtime() %g\n", wtime_end - wtime_start);
21: printf("Wall clock time from omp_get_wtime() %g\n", mpiwtime_end - mpiwtime_start);
22: printf("Value of x(22) %g\n", x[22]);
23: maxthreads = omp_get_max_threads();
24: printf("Number of threads set %d\n", maxthreads);
25: PetscCall(PetscFinalize());
26: return 0;
27: }
29: /*TEST
31: build:
32: requires: openmp
34: test:
35: filter: grep -v "Number of threads"
37: TEST*/