1d8e9fea7SSatish Balay 2173c0623SSatish Balay #include "petsc.h" 3e090d566SSatish Balay #include "petscsys.h" 4173c0623SSatish Balay 54a2ae208SSatish Balay #undef __FUNCT__ 64a2ae208SSatish Balay #define __FUNCT__ "main" 7173c0623SSatish Balay int main(int argc,char **argv) 8173c0623SSatish Balay { 9b0a32e0cSBarry Smith PetscLogDouble x,y; 1047794344SBarry Smith double value; 1198d6af09SSatish Balay void *arr[1000],*dummy; 12f1af5d2fSBarry Smith int ierr,i,rand1[1000],rand2[1000]; 1377c4ece6SBarry Smith PetscRandom r; 14f1af5d2fSBarry Smith PetscTruth flg; 15173c0623SSatish Balay 1677c4ece6SBarry Smith PetscInitialize(&argc,&argv,0,0); 17173c0623SSatish Balay 18029af93fSBarry Smith ierr = PetscRandomCreate(PETSC_COMM_SELF,RANDOM_DEFAULT,&r);CHKERRQ(ierr); 19173c0623SSatish Balay for (i=0; i<1000; i++) { 2077c4ece6SBarry Smith ierr = PetscRandomGetValue(r,&value);CHKERRQ(ierr); 21173c0623SSatish Balay rand1[i] = (int)(value* 144327); 2277c4ece6SBarry Smith ierr = PetscRandomGetValue(r,&value);CHKERRQ(ierr); 23173c0623SSatish Balay rand2[i] = (int)(value* 144327); 24173c0623SSatish Balay } 25173c0623SSatish Balay 2698d6af09SSatish Balay /* Take care of paging effects */ 27ac355199SBarry Smith ierr = PetscMalloc(100,&dummy);CHKERRQ(ierr); 28ac355199SBarry Smith ierr = PetscFree(dummy);CHKERRQ(ierr); 29ac355199SBarry Smith ierr = PetscGetTime(&x);CHKERRQ(ierr); 3098d6af09SSatish Balay 31173c0623SSatish Balay /* Do all mallocs */ 32173c0623SSatish Balay for (i=0 ; i< 1000; i++) { 33ac355199SBarry Smith ierr = PetscMalloc(rand1[i],& arr[i]);CHKERRQ(ierr); 34173c0623SSatish Balay } 35173c0623SSatish Balay 36ac355199SBarry Smith ierr = PetscGetTime(&x);CHKERRQ(ierr); 37173c0623SSatish Balay 38173c0623SSatish Balay /* Do some frees */ 39173c0623SSatish Balay for (i=0; i< 1000; i+=2) { 40ac355199SBarry Smith ierr = PetscFree(arr[i]);CHKERRQ(ierr); 41173c0623SSatish Balay } 42173c0623SSatish Balay 43173c0623SSatish Balay /* Do some mallocs */ 44173c0623SSatish Balay for (i=0; i< 1000; i+=2) { 45ac355199SBarry Smith ierr = PetscMalloc(rand2[i],&arr[i]);CHKERRQ(ierr); 46173c0623SSatish Balay } 47ac355199SBarry Smith ierr = PetscGetTime(&y);CHKERRQ(ierr); 48173c0623SSatish Balay 49173c0623SSatish Balay for (i=0; i< 1000; i++) { 50ac355199SBarry Smith ierr = PetscFree(arr[i]);CHKERRQ(ierr); 51173c0623SSatish Balay } 52173c0623SSatish Balay 53b4d8b9abSSatish Balay fprintf(stdout,"%-15s : %e sec, with options : ","PetscMalloc",(y-x)/500.0); 54*ff002950SBarry Smith if(PetscOptionsHasName(PETSC_NULL,"-malloc",&flg),flg) fprintf(stdout,"-malloc "); 55b4d8b9abSSatish Balay fprintf(stdout,"\n"); 56173c0623SSatish Balay 57ac355199SBarry Smith ierr = PetscRandomDestroy(r);CHKERRQ(ierr); 582b7fea2aSSatish Balay ierr = PetscFinalize();CHKERRQ(ierr); 593a40ed3dSBarry Smith PetscFunctionReturn(0); 60173c0623SSatish Balay } 61