[MPICH] code for checking interveaving

Wei-keng Liao wkliao at ece.northwestern.edu
Mon Jan 28 16:21:12 CST 2008


In MPICH2-1.0.6p1, file adio/common/ad_write_coll.c, lines 112 - 118,

112     /* are the accesses of different processes interleaved? */
113     for (i=1; i<nprocs; i++)
114         if ((st_offsets[i] < end_offsets[i-1]) &&
115             (st_offsets[i] <= end_offsets[i]))
116             interleave_count++;
117     /* This is a rudimentary check for interleaving, but should suffice
118        for the moment. */


Shouldn't line 115 be the following?

115             (st_offsets[i-1] <= end_offsets[i]))
                           ^^^^^
Line 115 in its original form makes no sense.
This not a bug, collective write shall still run correctly without change.
But, in some case non-inverleaving will considered as interleaving.

The same thing happens in ad_read_coll.c .

Wei-keng




More information about the mpich-discuss mailing list