[mpich-discuss] Flash IO Benchmark using mpich2 and pvfs2

Shawn Kim shawn.subscribe at gmail.com
Wed Mar 10 17:13:21 CST 2010


On Wed, Mar 10, 2010 at 3:19 PM, Rob Latham <robl at mcs.anl.gov> wrote:

> On Wed, Mar 10, 2010 at 02:47:09PM -0500, Shawn Kim wrote:
> >
> > 1. MPI_File_write_all (mpich2-1.0.8/src/mpi/romio/mpi-io/write_all.c)
> > 2. MPIOI_File_write_all (mpich2-1.0.8/src/mpi/romio/mpi-io/write_all.c)
> > 3. ADIO_WriteStridedColl
> > 4. ADIOI_GEN_WriteStridedColl
> > (mpich2-1.0.8/src/mpi/romio/adio/common/ad_write_coll.c)
> >
> -------------------------------------------------------------------------------------------------------------------------------------
> > >From here, I can't trace it
> > 5. ADIO_WriteContig (ad_pvfs2_write.c)
> > 6. ADIOI_PVFS2_WriteContig
> > 7. PVFS_sys_write
> > ====================================
> > 8. PVFS_sys_io (sys-io.sm)
> >
> > Is there anybody who knows why these call sequences don't work? If
> anybody
> > ran Flash IO before, is the result correct?
> > Or, am I missing something?
>
> Hi: this looks correct to me.  what are you confused about?
>
> if the I/O accesses overlap, or the "romio_cb_write" hint is set to
> "enable", "ADIOI_GEN_WriteStridedColl will carry out the two-phase
> collective I/O optimization.
>
> If you are jumping to ADIO_WriteContig, then you might have hit this
> test fairly early in ADIOI_GEN_WriteStridedColl:
>
>   if (fd->hints->cb_write == ADIOI_HINT_DISABLE ||
>           (!interleave_count && (fd->hints->cb_write == ADIOI_HINT_AUTO)))
> {
>
> if that evaluates true, then you fall into "process this request
> independently".
>

Yes, Flash IO fell into this independence accesses before jumping to
ADIO_WriteContig. This means Flash IO does not carry out two-phase
collective I/O optimization, doesn't it?
I can't still find ADIO_WriteContig() from ADIOI_GEN_WriteStridedColl.

       if (buftype_is_contig && filetype_is_contig) {
            if (file_ptr_type == ADIO_EXPLICIT_OFFSET) {
                off = fd->disp + (fd->etype_size) * offset;
                ADIO_WriteContig(fd, buf, count, datatype,
ADIO_EXPLICIT_OFFSET, off, status, error_code);
            }
            else
                -----------> This is called by Flash IO
    ----------> ADIO_WriteContig(fd, buf, count, datatype, ADIO_INDIVIDUAL,
0, status, error_code);

        }
        else
            ADIO_WriteStrided(fd, buf, count, datatype, file_ptr_type,
offset, status, error_code);



> Otherwise, ADIOI_Exch_and_write and ADIOI_W_Exchange_data contain the
> heart of the two-phase optimization.  Phase one is exchanging data with
> processors to re-order the I/O, and Phase two is the actual
> (contiguous) write, or ADIO_WriteContig.
>
> ==rob
>
> > Thank you
> >
> > - Best regards,
> > Shawn
>
> > _______________________________________________
> > mpich-discuss mailing list
> > mpich-discuss at mcs.anl.gov
> > https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss
>
>
> --
> Rob Latham
> Mathematics and Computer Science Division
> Argonne National Lab, IL USA
> _______________________________________________
> mpich-discuss mailing list
> mpich-discuss at mcs.anl.gov
> https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/mpich-discuss/attachments/20100310/63174d81/attachment.htm>


More information about the mpich-discuss mailing list