[MPICH] slow IOR when using fileview

Wei-keng Liao wkliao at ece.northwestern.edu
Mon Jul 2 17:55:09 CDT 2007


My test code only generates a single, contiguous write in each process (no 
interleaving, no overlapping across any processes). If the independent 
access is used instead, I don't know why each write is divided into 512 KB 
chunks and locking is ever needed to guaranteed the atomic access of the 
10 MB contiguous file range. For this particular access pattern, ROMIO 
should not do read-modify-write at all.

BTW, I also see the performance improvement when disabling romio_ds_write 
hint. This applies to all sorts of type constructors.

Wei-keng



On Mon, 2 Jul 2007, Robert Latham wrote:

> On Mon, Jul 02, 2007 at 04:34:49PM -0500, Rajeev Thakur wrote:
>> But I don't think the lock functions get called in the collective I/O case.
>
> No, in this case the collective I/O case is falling back to the
> independent methods (and thus calling the lock functions).
>
> Let's take the collective write case.  Assuming cb_write has not been
> set to 'disabled', ROMIO will check for interleaving.  In Wei-keng's
> case, is there any interleaving? if not, interleave_count will be 0
> ADIOI_GEN_WriteStridedColl will fall back to independent accesses.
>
> For further confirmation you can run the test with testfs:
>
> [3/8] ADIOI_TESTFS_SetInfo called on foo.view
> [3/8]    calling ADIOI_GEN_SetInfo
> [3/8] ADIOI_TESTFS_Open called on foo.view
> [3/8] ADIOI_TESTFS_SetInfo called on foo.view
> [3/8]    calling ADIOI_GEN_SetInfo
> [3/8] ADIOI_TESTFS_WriteStridedColl called on foo.view
> [3/8]    calling ADIOI_GEN_WriteStridedColl
> [3/8] ADIOI_TESTFS_WriteStrided called on foo.view
> [3/8]    calling ADIOI_GEN_WriteStrided
> [3/8] ADIOI_TESTFS_ReadContig called on foo.view
> [3/8]    reading (buf = 0x2b37e3206010, loc = 3145728, sz = 524288)
> [3/8] ADIOI_TESTFS_WriteContig called on foo.view
> [3/8]    writing (buf = 0x2b37e3206010, loc = 3145728, sz = 524288)
> [3/8] ADIOI_TESTFS_ReadContig called on foo.view
> [3/8]    reading (buf = 0x2b37e3206010, loc = 3670016, sz = 524288)
> [3/8] ADIOI_TESTFS_WriteContig called on foo.view
> [3/8]    writing (buf = 0x2b37e3206010, loc = 3670016, sz = 524288)
> [3/8] ADIOI_TESTFS_Close called on foo.view
> [3/8] ADIOI_TESTFS_SetInfo called on foo.noview
> [3/8]    calling ADIOI_GEN_SetInfo
> [3/8] ADIOI_TESTFS_Open called on foo.noview
> [3/8] ADIOI_TESTFS_WriteStridedColl called on foo.noview
> [3/8]    calling ADIOI_GEN_WriteStridedColl
> [3/8] ADIOI_TESTFS_WriteContig called on foo.noview
> [3/8]    writing (buf = 0x7fffc77c1b00, loc = 3145728, sz = 1048576)
> [3/8] ADIOI_TESTFS_Close called on foo.noview
>
>
> ==rob
>
> -- 
> Rob Latham
> Mathematics and Computer Science Division    A215 0178 EA2D B059 8CDF
> Argonne National Lab, IL USA                 B29D F333 664A 4280 315B
>




More information about the mpich-discuss mailing list