xref: /petsc/src/benchmarks/PetscMemcmp.c (revision abdd934af67c1cc360c4d0cfcf2de16e188d627e)
1c6db04a5SJed Brown #include <petscsys.h>
28563dfccSBarry Smith #include <petsctime.h>
3b0878937SSatish Balay 
main(int argc,char ** argv)4b0878937SSatish Balay int main(int argc, char **argv)
5b0878937SSatish Balay {
6b0a32e0cSBarry Smith   PetscLogDouble x, y, z;
7ea709b57SSatish Balay   PetscScalar    A[10000], B[10000];
8a438ae71SBarry Smith   PetscInt       i;
9ace3abfcSBarry Smith   PetscBool      flg;
10b0878937SSatish Balay 
11*9566063dSJacob Faibussowitsch   PetscCall(PetscInitialize(&argc, &argv, 0, 0));
12b0878937SSatish Balay   for (i = 0; i < 10000; i++) {
13b0878937SSatish Balay     A[i] = i % 61897;
14b0878937SSatish Balay     B[i] = i % 61897;
15b0878937SSatish Balay   }
16b0878937SSatish Balay   /* To take care of paging effects */
174115e8b9SSatish Balay   PetscMemcmp(A, B, sizeof(PetscScalar) * 0, &flg);
18*9566063dSJacob Faibussowitsch   PetscCall(PetscTime(&x));
19b0878937SSatish Balay 
20*9566063dSJacob Faibussowitsch   PetscCall(PetscTime(&x));
214115e8b9SSatish Balay   PetscMemcmp(A, B, sizeof(PetscScalar) * 10000, &flg);
224115e8b9SSatish Balay   PetscMemcmp(A, B, sizeof(PetscScalar) * 10000, &flg);
234115e8b9SSatish Balay   PetscMemcmp(A, B, sizeof(PetscScalar) * 10000, &flg);
244115e8b9SSatish Balay   PetscMemcmp(A, B, sizeof(PetscScalar) * 10000, &flg);
254115e8b9SSatish Balay   PetscMemcmp(A, B, sizeof(PetscScalar) * 10000, &flg);
264115e8b9SSatish Balay   PetscMemcmp(A, B, sizeof(PetscScalar) * 10000, &flg);
274115e8b9SSatish Balay   PetscMemcmp(A, B, sizeof(PetscScalar) * 10000, &flg);
284115e8b9SSatish Balay   PetscMemcmp(A, B, sizeof(PetscScalar) * 10000, &flg);
294115e8b9SSatish Balay   PetscMemcmp(A, B, sizeof(PetscScalar) * 10000, &flg);
304115e8b9SSatish Balay   PetscMemcmp(A, B, sizeof(PetscScalar) * 10000, &flg);
31*9566063dSJacob Faibussowitsch   PetscCall(PetscTime(&y));
329ae0b57aSSatish Balay   PetscMemcmp(A, B, sizeof(PetscScalar) * 0, &flg);
339ae0b57aSSatish Balay   PetscMemcmp(A, B, sizeof(PetscScalar) * 0, &flg);
349ae0b57aSSatish Balay   PetscMemcmp(A, B, sizeof(PetscScalar) * 0, &flg);
359ae0b57aSSatish Balay   PetscMemcmp(A, B, sizeof(PetscScalar) * 0, &flg);
369ae0b57aSSatish Balay   PetscMemcmp(A, B, sizeof(PetscScalar) * 0, &flg);
379ae0b57aSSatish Balay   PetscMemcmp(A, B, sizeof(PetscScalar) * 0, &flg);
389ae0b57aSSatish Balay   PetscMemcmp(A, B, sizeof(PetscScalar) * 0, &flg);
399ae0b57aSSatish Balay   PetscMemcmp(A, B, sizeof(PetscScalar) * 0, &flg);
409ae0b57aSSatish Balay   PetscMemcmp(A, B, sizeof(PetscScalar) * 0, &flg);
419ae0b57aSSatish Balay   PetscMemcmp(A, B, sizeof(PetscScalar) * 0, &flg);
42*9566063dSJacob Faibussowitsch   PetscCall(PetscTime(&z));
43b0878937SSatish Balay 
4435d8aa7fSBarry Smith   fprintf(stdout, "%s : \n", "PetscMemcmp");
45b4d8b9abSSatish Balay   fprintf(stdout, "    %-15s : %e sec\n", "Latency", (z - y) / 10.0);
46b4d8b9abSSatish Balay   fprintf(stdout, "    %-15s : %e sec\n", "Per PetscScalar", (2 * y - x - z) / 100000);
47b0878937SSatish Balay 
48*9566063dSJacob Faibussowitsch   PetscCall(PetscFinalize());
49b122ec5aSJacob Faibussowitsch   return 0;
50b0878937SSatish Balay }
51