1b620a312SSatish Balay #ifdef PETSC_RCS_HEADER 2*5a655dc6SBarry Smith static char vcid[] = "$Id: PetscGetCPUTime.c,v 1.3 1998/03/31 23:33:54 balay Exp bsmith $"; 3b620a312SSatish Balay #endif 4b620a312SSatish Balay 5b620a312SSatish Balay #include "petsc.h" 6b620a312SSatish Balay 7*5a655dc6SBarry Smith #undef __FUNC__ 8*5a655dc6SBarry Smith #define __FUNC__ "main" 9b620a312SSatish Balay int main( int argc, char **argv) 10b620a312SSatish Balay { 11b620a312SSatish Balay PLogDouble x, y; 12d3093643SSatish Balay long int i,j,A[100000],ierr; 13b620a312SSatish Balay 14b620a312SSatish Balay PetscInitialize(&argc, &argv,0,0); 15b620a312SSatish Balay /* To take care of paging effects */ 16d3093643SSatish Balay ierr = PetscGetCPUTime(&y); CHKERRA(ierr); 17b620a312SSatish Balay 18b620a312SSatish Balay for ( i=0; i<2; i++ ) { 19d3093643SSatish Balay ierr = PetscGetCPUTime(&x); CHKERRA(ierr); 20b620a312SSatish Balay 21b620a312SSatish Balay /* 22b620a312SSatish Balay Do some work for at least 1 ms. Most CPU timers 23b620a312SSatish Balay cannot measure anything less than that 24b620a312SSatish Balay */ 25b620a312SSatish Balay 26b620a312SSatish Balay for (j=0; j<20000*(i+1); j++) { 27b620a312SSatish Balay A[j]=i+j; 28b620a312SSatish Balay } 29d3093643SSatish Balay ierr = PetscGetCPUTime(&y); CHKERRA(ierr); 30b620a312SSatish Balay fprintf(stderr,"%-15s : %e sec\n","PetscGetCPUTime", (y-x)/10.0); 31b620a312SSatish Balay } 32b620a312SSatish Balay 33b620a312SSatish Balay PetscFinalize(); 343a40ed3dSBarry Smith PetscFunctionReturn(0); 35b620a312SSatish Balay } 36