1d8e9fea7SSatish Balay 2c6db04a5SJed Brown #include <petscsys.h> 3*8563dfccSBarry Smith #include <petsctime.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; 14ace3abfcSBarry Smith PetscBool flg; 15173c0623SSatish Balay 1677c4ece6SBarry Smith PetscInitialize(&argc,&argv,0,0); 17173c0623SSatish Balay 18c77d6671SHong Zhang ierr = PetscRandomCreate(PETSC_COMM_SELF,&r);CHKERRQ(ierr); 19c77d6671SHong Zhang ierr = PetscRandomSetFromOptions(r);CHKERRQ(ierr); 20173c0623SSatish Balay for (i=0; i<1000; i++) { 2177c4ece6SBarry Smith ierr = PetscRandomGetValue(r,&value);CHKERRQ(ierr); 22173c0623SSatish Balay rand1[i] = (int)(value* 144327); 2377c4ece6SBarry Smith ierr = PetscRandomGetValue(r,&value);CHKERRQ(ierr); 24173c0623SSatish Balay rand2[i] = (int)(value* 144327); 25173c0623SSatish Balay } 26173c0623SSatish Balay 2798d6af09SSatish Balay /* Take care of paging effects */ 28ac355199SBarry Smith ierr = PetscMalloc(100,&dummy);CHKERRQ(ierr); 29ac355199SBarry Smith ierr = PetscFree(dummy);CHKERRQ(ierr); 30*8563dfccSBarry Smith ierr = PetscTime(&x);CHKERRQ(ierr); 3198d6af09SSatish Balay 32173c0623SSatish Balay /* Do all mallocs */ 33173c0623SSatish Balay for (i=0; i< 1000; i++) { 34ac355199SBarry Smith ierr = PetscMalloc(rand1[i],&arr[i]);CHKERRQ(ierr); 35173c0623SSatish Balay } 36173c0623SSatish Balay 37*8563dfccSBarry Smith ierr = PetscTime(&x);CHKERRQ(ierr); 38173c0623SSatish Balay 39173c0623SSatish Balay /* Do some frees */ 40173c0623SSatish Balay for (i=0; i< 1000; i+=2) { 41ac355199SBarry Smith ierr = PetscFree(arr[i]);CHKERRQ(ierr); 42173c0623SSatish Balay } 43173c0623SSatish Balay 44173c0623SSatish Balay /* Do some mallocs */ 45173c0623SSatish Balay for (i=0; i< 1000; i+=2) { 46ac355199SBarry Smith ierr = PetscMalloc(rand2[i],&arr[i]);CHKERRQ(ierr); 47173c0623SSatish Balay } 48*8563dfccSBarry Smith ierr = PetscTime(&y);CHKERRQ(ierr); 49173c0623SSatish Balay 50173c0623SSatish Balay for (i=0; i< 1000; i++) { 51ac355199SBarry Smith ierr = PetscFree(arr[i]);CHKERRQ(ierr); 52173c0623SSatish Balay } 53173c0623SSatish Balay 54b4d8b9abSSatish Balay fprintf(stdout,"%-15s : %e sec, with options : ","PetscMalloc",(y-x)/500.0); 550298fd71SBarry Smith ierr = PetscOptionsHasName(NULL,"-malloc",&flg);CHKERRQ(ierr); 568caf3d72SBarry Smith if (flg) fprintf(stdout,"-malloc "); 57b4d8b9abSSatish Balay fprintf(stdout,"\n"); 58173c0623SSatish Balay 59fcfd50ebSBarry Smith ierr = PetscRandomDestroy(&r);CHKERRQ(ierr); 60f3fe499bSBarry Smith ierr = PetscFinalize(); 613a40ed3dSBarry Smith PetscFunctionReturn(0); 62173c0623SSatish Balay } 63