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",
48 /* Look at the timer */
52 for (i=1; i<MAX_TIMER_TEST; i++) {
53 diff = t1[i] - t1[i-1];
54 if (diff == 0.0) nZeros++;
55 else if (diff < minDiff) minDiff = diff;
56 if (diff > maxDiff) maxDiff = diff;
59 /* Are the time diff values and tick values consistent */
61 printf( "Tick = %e, timer range = [%e,%e]\n", tickval, minDiff,
63 if (nZeros) printf( "Wtime difference was 0 %d times\n", nZeros );