1c6db04a5SJed Brown #include <petscsys.h> 28563dfccSBarry Smith #include <petsctime.h> 3b0878937SSatish Balay 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