1 2 #include <petscsys.h> 3 #include <petsctime.h> 4 5 int main(int argc,char **argv) 6 { 7 PetscLogDouble x,y,z; 8 PetscScalar A[10000]; 9 10 PetscCall(PetscInitialize(&argc,&argv,0,0)); 11 /* To take care of paging effects */ 12 PetscCall(PetscMemzero(A,sizeof(PetscScalar)*0)); 13 PetscCall(PetscTime(&x)); 14 15 PetscCall(PetscTime(&x)); 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(PetscMemzero(A,sizeof(PetscScalar)*10000)); 26 PetscCall(PetscTime(&y)); 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(PetscMemzero(A,sizeof(PetscScalar)*0)); 37 PetscCall(PetscTime(&z)); 38 39 fprintf(stdout,"%s : \n","PetscMemzero"); 40 fprintf(stdout," %-15s : %e sec\n","Latency",(z-y)/10.0); 41 fprintf(stdout," %-15s : %e sec\n","Per PetscScalar",(2*y-x-z)/100000.0); 42 43 PetscCall(PetscFinalize()); 44 return 0; 45 } 46