xref: /petsc/src/benchmarks/PetscMemcmp.c (revision b0878937e451d458b2acb874c69af95fc2b13ec8)
1 #include "stdio.h"
2 #include "petsc.h"
3 
4 int main( int argc, char **argv)
5 {
6   double x, y,z;
7   int A[10000], B[10000],i;
8 
9   PetscInitialize(&argc, &argv,0,0,0);
10 
11   for (i=0; i<10000; i++) {
12     A[i] = i%61897;
13     B[i] = i%61897;
14   }
15   /* To take care of paging effects */
16   PetscMemcmp(A,B,sizeof(int)*10000);
17   x = PetscGetTime();
18 
19   x = PetscGetTime();
20   PetscMemcmp(A,B,sizeof(int)*10000);
21   PetscMemcmp(A,B,sizeof(int)*10000);
22   PetscMemcmp(A,B,sizeof(int)*10000);
23   PetscMemcmp(A,B,sizeof(int)*10000);
24   PetscMemcmp(A,B,sizeof(int)*10000);
25   PetscMemcmp(A,B,sizeof(int)*10000);
26   PetscMemcmp(A,B,sizeof(int)*10000);
27   PetscMemcmp(A,B,sizeof(int)*10000);
28   PetscMemcmp(A,B,sizeof(int)*10000);
29   PetscMemcmp(A,B,sizeof(int)*10000);
30   y = PetscGetTime();
31   PetscMemcmp(A,B,sizeof(int)*0);
32   PetscMemcmp(A,B,sizeof(int)*0);
33   PetscMemcmp(A,B,sizeof(int)*0);
34   PetscMemcmp(A,B,sizeof(int)*0);
35   PetscMemcmp(A,B,sizeof(int)*0);
36   PetscMemcmp(A,B,sizeof(int)*0);
37   PetscMemcmp(A,B,sizeof(int)*0);
38   PetscMemcmp(A,B,sizeof(int)*0);
39   PetscMemcmp(A,B,sizeof(int)*0);
40   PetscMemcmp(A,B,sizeof(int)*0);
41   z = PetscGetTime();
42 
43   fprintf(stderr,"%s : \n","PetscMemcmp");
44   fprintf(stderr,"    %-11s : %e sec\n","Latency",(z-y)/10.0);
45   fprintf(stderr,"    %-11s : %e sec\n","Per byte",(2*y-x-z)/100000.0);
46 
47   PetscFinalize();
48   return 0;
49 }
50