1 #include "stdio.h" 2 #include "petsc.h" 3 4 int main( int argc, char **argv) 5 { 6 double x, y,z; 7 int A[10000], B[10000]; 8 9 PetscInitialize(&argc, &argv,0,0,0); 10 for (i=0; i<10000; i++) { 11 A[i] = i%61897; 12 B[i] = i%61897; 13 } 14 /* To take care of paging effects */ 15 PetscMemcpy(A,B,sizeof(int)*10000); 16 x = PetscGetTime(); 17 18 x = PetscGetTime(); 19 PetscMemcpy(A,B,sizeof(int)*10000); 20 PetscMemcpy(A,B,sizeof(int)*10000); 21 PetscMemcpy(A,B,sizeof(int)*10000); 22 PetscMemcpy(A,B,sizeof(int)*10000); 23 PetscMemcpy(A,B,sizeof(int)*10000); 24 PetscMemcpy(A,B,sizeof(int)*10000); 25 PetscMemcpy(A,B,sizeof(int)*10000); 26 PetscMemcpy(A,B,sizeof(int)*10000); 27 PetscMemcpy(A,B,sizeof(int)*10000); 28 PetscMemcpy(A,B,sizeof(int)*10000); 29 y = PetscGetTime(); 30 PetscMemcpy(A,B,sizeof(int)*0); 31 PetscMemcpy(A,B,sizeof(int)*0); 32 PetscMemcpy(A,B,sizeof(int)*0); 33 PetscMemcpy(A,B,sizeof(int)*0); 34 PetscMemcpy(A,B,sizeof(int)*0); 35 PetscMemcpy(A,B,sizeof(int)*0); 36 PetscMemcpy(A,B,sizeof(int)*0); 37 PetscMemcpy(A,B,sizeof(int)*0); 38 PetscMemcpy(A,B,sizeof(int)*0); 39 PetscMemcpy(A,B,sizeof(int)*0); 40 z = PetscGetTime(); 41 42 fprintf(stderr,"%s : \n","PetscMemcpy"); 43 fprintf(stderr," %-11s : %e sec\n","Latency",(z-y)/10.0); 44 fprintf(stderr," %-11s : %e sec\n","Per byte",(2*y-x-z)/100000.0); 45 46 PetscFinalize(); 47 return 0; 48 } 49