19f0612e4SBarry Smith #include <omp.h> 29f0612e4SBarry Smith #include <petscsys.h> 39f0612e4SBarry Smith 49f0612e4SBarry Smith /* 59f0612e4SBarry Smith See the comments in ex69f.F90 69f0612e4SBarry Smith */ 79f0612e4SBarry Smith int main(int argc, char **args) 89f0612e4SBarry Smith { 99f0612e4SBarry Smith double wtime_start, wtime_end, mpiwtime_start, mpiwtime_end; 109f0612e4SBarry Smith double x[100]; 119f0612e4SBarry Smith int i, maxthreads; 129f0612e4SBarry Smith 139f0612e4SBarry Smith PetscCall(PetscInitialize(&argc, &args, NULL, NULL)); 149f0612e4SBarry Smith wtime_start = omp_get_wtime(); 159f0612e4SBarry Smith mpiwtime_start = MPI_Wtime(); 169f0612e4SBarry Smith #pragma omp parallel for schedule(static) 17*ac530a7eSPierre Jolivet for (i = 0; i < 100; i++) x[i] = exp(3.0 * i); 189f0612e4SBarry Smith wtime_end = omp_get_wtime(); 199f0612e4SBarry Smith mpiwtime_end = MPI_Wtime(); 209f0612e4SBarry Smith printf("Wall clock time from MPI_Wtime() %g\n", wtime_end - wtime_start); 219f0612e4SBarry Smith printf("Wall clock time from omp_get_wtime() %g\n", mpiwtime_end - mpiwtime_start); 229f0612e4SBarry Smith printf("Value of x(22) %g\n", x[22]); 239f0612e4SBarry Smith maxthreads = omp_get_max_threads(); 249f0612e4SBarry Smith printf("Number of threads set %d\n", maxthreads); 259f0612e4SBarry Smith PetscCall(PetscFinalize()); 269f0612e4SBarry Smith return 0; 279f0612e4SBarry Smith } 289f0612e4SBarry Smith 299f0612e4SBarry Smith /*TEST 309f0612e4SBarry Smith 319f0612e4SBarry Smith build: 329f0612e4SBarry Smith requires: openmp 339f0612e4SBarry Smith 349f0612e4SBarry Smith test: 359f0612e4SBarry Smith filter: grep -v "Number of threads" 369f0612e4SBarry Smith 379f0612e4SBarry Smith TEST*/ 38