Actual source code: PetscMemzero.c

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

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

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

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

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

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