1 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
3 * (C) 2006 by Argonne National Laboratory.
4 * See COPYRIGHT in top-level directory.
8 * Check that the timer produces monotone nondecreasing times and that
9 * the Tick is reasonable
16 static int verbose = 0;
18 #define MAX_TIMER_TEST 5000
20 int main(int argc, char *argv[])
22 double t1[MAX_TIMER_TEST], tick[MAX_TIMER_TEST], tickval;
23 double minDiff, maxDiff, diff;
27 MTest_Init(&argc, &argv);
29 for (i = 0; i < MAX_TIMER_TEST; i++) {
33 for (i = 0; i < MAX_TIMER_TEST; i++) {
34 tick[i] = MPI_Wtick();
37 /* Look at the values */
38 /* Look at the tick */
39 tickval = MPI_Wtick();
40 for (i = 0; i < MAX_TIMER_TEST; i++) {
41 if (tickval != tick[i]) {
42 fprintf(stderr, "Nonconstant value for MPI_Wtick: %e != %e\n", tickval, tick[i]);
47 /* Look at the timer */
51 for (i = 1; i < MAX_TIMER_TEST; i++) {
52 diff = t1[i] - t1[i - 1];
55 else if (diff < minDiff)
61 /* Are the time diff values and tick values consistent */
63 printf("Tick = %e, timer range = [%e,%e]\n", tickval, minDiff, maxDiff);
65 printf("Wtime difference was 0 %d times\n", nZeros);