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