1d8e9fea7SSatish Balay 2c6db04a5SJed Brown #include <petscsys.h> 38563dfccSBarry Smith #include <petsctime.h> 4b0878937SSatish Balay 5b0878937SSatish Balay int main(int argc,char **argv) 6b0878937SSatish Balay { 7580bdb30SBarry Smith PetscLogDouble x,y; 8a438ae71SBarry Smith PetscErrorCode ierr; 9ea709b57SSatish Balay PetscScalar *A,*B; 10b0878937SSatish Balay 11a438ae71SBarry Smith ierr = PetscInitialize(&argc,&argv,0,0);if (ierr) return ierr; 12*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscCalloc1(8000000,&A)); 13*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscMalloc1(8000000,&B)); 14e24b481bSBarry Smith 15e24b481bSBarry Smith for (i=0; i<8000000; i++) { 16b0878937SSatish Balay A[i] = i%61897; 17b0878937SSatish Balay B[i] = i%61897; 18b0878937SSatish Balay } 19b0878937SSatish Balay /* To take care of paging effects */ 20*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscArraycpy(A,B,8000000)); 21*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscTime(&x)); 22*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscArraycpy(A,B,8000000)); 23*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscTime(&x)); 24b0878937SSatish Balay 2535d8aa7fSBarry Smith fprintf(stdout,"%s : \n","PetscMemcpy"); 26b4d8b9abSSatish Balay fprintf(stdout," %-15s : %e MB/s\n","Bandwidth",10.0*8*8/(y-x)); 27b0878937SSatish Balay 28*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscFree(A)); 29*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscFree(B)); 30f3fe499bSBarry Smith ierr = PetscFinalize(); 3126f47effSBarry Smith return ierr; 32b0878937SSatish Balay } 33