xref: /petsc/src/benchmarks/PetscGetCPUTime.c (revision b620a312cd83880e59a0687c7fdc2294f8f5195e)
1*b620a312SSatish Balay #ifdef PETSC_RCS_HEADER
2*b620a312SSatish Balay static char vcid[] = "$Id: PetscGetCPUTime.c,v 1.6 1997/07/09 21:01:29 balay Exp $";
3*b620a312SSatish Balay #endif
4*b620a312SSatish Balay 
5*b620a312SSatish Balay #include "stdio.h"
6*b620a312SSatish Balay #include "petsc.h"
7*b620a312SSatish Balay 
8*b620a312SSatish Balay int main( int argc, char **argv)
9*b620a312SSatish Balay {
10*b620a312SSatish Balay   PLogDouble x, y;
11*b620a312SSatish Balay   long int   i,j,A[100000];
12*b620a312SSatish Balay 
13*b620a312SSatish Balay   PetscInitialize(&argc, &argv,0,0);
14*b620a312SSatish Balay  /* To take care of paging effects */
15*b620a312SSatish Balay   y = PetscGetCPUTime();
16*b620a312SSatish Balay 
17*b620a312SSatish Balay   for ( i=0; i<2; i++ ) {
18*b620a312SSatish Balay     x = PetscGetCPUTime();
19*b620a312SSatish Balay 
20*b620a312SSatish Balay     /*
21*b620a312SSatish Balay        Do some work for at least 1 ms. Most CPU timers
22*b620a312SSatish Balay        cannot measure anything less than that
23*b620a312SSatish Balay      */
24*b620a312SSatish Balay 
25*b620a312SSatish Balay     for (j=0; j<20000*(i+1); j++) {
26*b620a312SSatish Balay       A[j]=i+j;
27*b620a312SSatish Balay     }
28*b620a312SSatish Balay     y = PetscGetCPUTime();
29*b620a312SSatish Balay     fprintf(stderr,"%-15s : %e sec\n","PetscGetCPUTime", (y-x)/10.0);
30*b620a312SSatish Balay   }
31*b620a312SSatish Balay 
32*b620a312SSatish Balay   PetscFinalize();
33*b620a312SSatish Balay   return 0;
34*b620a312SSatish Balay }
35