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: }