1173c0623SSatish Balay #include "stdio.h" 2173c0623SSatish Balay #include "petsc.h" 3173c0623SSatish Balay #include "sys.h" 4173c0623SSatish Balay 5173c0623SSatish Balay int main( int argc, char **argv) 6173c0623SSatish Balay { 7173c0623SSatish Balay double x, y, value; 898d6af09SSatish Balay void *arr[1000], *dummy; 9173c0623SSatish Balay int ierr, i, flg, rand1[1000], rand2[1000]; 10173c0623SSatish Balay SYRandom r; 11173c0623SSatish Balay 12173c0623SSatish Balay PetscInitialize(&argc, &argv,0,0,0); 13173c0623SSatish Balay 14173c0623SSatish Balay ierr = SYRandomCreate( MPI_COMM_SELF,RANDOM_DEFAULT,&r); CHKERRQ(ierr); 15173c0623SSatish Balay for (i=0; i<1000; i++) { 16173c0623SSatish Balay ierr = SYRandomGetValue(r, &value); CHKERRQ(ierr); 17173c0623SSatish Balay rand1[i] = (int ) (value* 144327); 18173c0623SSatish Balay ierr = SYRandomGetValue(r, &value); CHKERRQ(ierr); 19173c0623SSatish Balay rand2[i] = (int ) (value* 144327); 20173c0623SSatish Balay } 21173c0623SSatish Balay 2298d6af09SSatish Balay /* Take care of paging effects */ 2398d6af09SSatish Balay dummy = PetscMalloc(100); CHKPTRA(dummy); 2498d6af09SSatish Balay PetscFree(dummy); 25*0a26283dSSatish Balay x = PetscGetTime(); 2698d6af09SSatish Balay 27173c0623SSatish Balay /* Do all mallocs */ 28173c0623SSatish Balay for (i=0 ; i< 1000; i++) { 29173c0623SSatish Balay arr[i] = PetscMalloc(rand1[i]); CHKPTRA( arr[i]); 30173c0623SSatish Balay } 31173c0623SSatish Balay 32173c0623SSatish Balay x = PetscGetTime(); 33173c0623SSatish Balay 34173c0623SSatish Balay /* Do some frees */ 35173c0623SSatish Balay for (i=0; i< 1000; i+=2) { 36173c0623SSatish Balay PetscFree(arr[i]); 37173c0623SSatish Balay } 38173c0623SSatish Balay 39173c0623SSatish Balay /* Do some mallocs */ 40173c0623SSatish Balay for (i=0; i< 1000; i+=2) { 41173c0623SSatish Balay arr[i] = PetscMalloc(rand2[i]); CHKPTRA( arr[i]); 42173c0623SSatish Balay } 43173c0623SSatish Balay y = PetscGetTime(); 44173c0623SSatish Balay 45173c0623SSatish Balay for (i=0; i< 1000; i++) { 46173c0623SSatish Balay PetscFree(arr[i]); 47173c0623SSatish Balay } 48173c0623SSatish Balay 49c0e5a298SSatish Balay fprintf(stderr,"%-15s : %e sec , with options : ","PetscMalloc",(y-x)/500.0); 50173c0623SSatish Balay if(OptionsHasName(PETSC_NULL,"-trmalloc",&flg),flg) fprintf(stderr,"-trmalloc "); 51173c0623SSatish Balay fprintf(stderr,"\n"); 52173c0623SSatish Balay 53173c0623SSatish Balay SYRandomDestroy(r); 54173c0623SSatish Balay PetscFinalize(); 55173c0623SSatish Balay return 0; 56173c0623SSatish Balay } 57