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