1 #include <petscsys.h> 2 #include <petsctime.h> 3 4 int main(int argc,char **argv) 5 { 6 PetscLogDouble x,y,z; 7 PetscScalar A[10000]; 8 9 PetscCall(PetscInitialize(&argc,&argv,0,0)); 10 /* To take care of paging effects */ 11 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*0)); 12 PetscCall(PetscTime(&x)); 13 14 PetscCall(PetscTime(&x)); 15 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*10000)); 16 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*10000)); 17 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*10000)); 18 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*10000)); 19 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*10000)); 20 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*10000)); 21 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*10000)); 22 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*10000)); 23 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*10000)); 24 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*10000)); 25 PetscCall(PetscTime(&y)); 26 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*0)); 27 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*0)); 28 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*0)); 29 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*0)); 30 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*0)); 31 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*0)); 32 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*0)); 33 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*0)); 34 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*0)); 35 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*0)); 36 PetscCall(PetscTime(&z)); 37 38 fprintf(stdout,"%s : \n","PetscMemzero"); 39 fprintf(stdout," %-15s : %e sec\n","Latency",(z-y)/10.0); 40 fprintf(stdout," %-15s : %e sec\n","Per PetscScalar",(2*y-x-z)/100000.0); 41 42 PetscCall(PetscFinalize()); 43 return 0; 44 } 45