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