[mpich2-dev] Another romio performance question
Bob Cernohous
bobc at us.ibm.com
Fri Aug 21 10:35:38 CDT 2009
I was looking at the "hole" detection and read-modify-write processing in
ad_write_coll (and ad_bgl_wrcoll).
I notice that it very intentionally looks for front and back holes. Any
hole causes read-modify-write. But what if the only hole found is front
or back? Was there any effort to just skip front/back holes? Avoid the
read and adjust the write to only write where there's data? Adjust the
offset and length to skip the front/back holes? Or is it not worth it on
typical collective i/o patterns?
I have a customer complaint that a particular testcase performs poorly
with MPI_File_write_at_all. For the most part, it's just a testcase that
shouldn't be using collective i/o. Each rank writes large contiguous
blocks to it's own range of the file. So aggregation is just a waste of
time. Each write the aggregator does is a large contiguous write for a
single rank. So there's really no true aggregation.
What caught my eye was, for example, using a 16MB cb_buffer_size and
writing a contiguous 1M block causes read-modify-write of the whole 16M
because of the single large (15M) trailing (or leading) hole. It just
seems like we should do better, but is it worth doing anything for
something that probably isn't a true collective i/o pattern?
I can fix the testcase performance by hinting cb_buffer_size down to 1MB
and then there's no hole. This is a fine user circumvention, but I'm
trying to decide if we should do more.
Thoughts?
Bob Cernohous: (T/L 553) 507-253-6093
BobC at us.ibm.com
IBM Rochester, Building 030-2(C335), Department 61L
3605 Hwy 52 North, Rochester, MN 55901-7829
> Chaos reigns within.
> Reflect, repent, and reboot.
> Order shall return.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/mpich2-dev/attachments/20090821/a7afdc42/attachment.htm>
More information about the mpich2-dev
mailing list