Actual source code: PetscMemzero.c


  2: #include <petscsys.h>
  3: #include <petsctime.h>

  5: int main(int argc,char **argv)
  6: {
  7:   PetscLogDouble x,y,z;
  8:   PetscScalar    A[10000];

 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));

 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));

 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);

 43:   PetscCall(PetscFinalize());
 44:   return 0;
 45: }