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:   PetscInitialize(&argc,&argv,0,0);
 11:   /* To take care of paging effects */
 12:   PetscMemzero(A,sizeof(PetscScalar)*0);
 13:   PetscTime(&x);

 15:   PetscTime(&x);
 16:   PetscMemzero(A,sizeof(PetscScalar)*10000);
 17:   PetscMemzero(A,sizeof(PetscScalar)*10000);
 18:   PetscMemzero(A,sizeof(PetscScalar)*10000);
 19:   PetscMemzero(A,sizeof(PetscScalar)*10000);
 20:   PetscMemzero(A,sizeof(PetscScalar)*10000);
 21:   PetscMemzero(A,sizeof(PetscScalar)*10000);
 22:   PetscMemzero(A,sizeof(PetscScalar)*10000);
 23:   PetscMemzero(A,sizeof(PetscScalar)*10000);
 24:   PetscMemzero(A,sizeof(PetscScalar)*10000);
 25:   PetscMemzero(A,sizeof(PetscScalar)*10000);
 26:   PetscTime(&y);
 27:   PetscMemzero(A,sizeof(PetscScalar)*0);
 28:   PetscMemzero(A,sizeof(PetscScalar)*0);
 29:   PetscMemzero(A,sizeof(PetscScalar)*0);
 30:   PetscMemzero(A,sizeof(PetscScalar)*0);
 31:   PetscMemzero(A,sizeof(PetscScalar)*0);
 32:   PetscMemzero(A,sizeof(PetscScalar)*0);
 33:   PetscMemzero(A,sizeof(PetscScalar)*0);
 34:   PetscMemzero(A,sizeof(PetscScalar)*0);
 35:   PetscMemzero(A,sizeof(PetscScalar)*0);
 36:   PetscMemzero(A,sizeof(PetscScalar)*0);
 37:   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:   PetscFinalize();
 44:   return 0;
 45: }