[mpich-discuss] where is two-phase I/O implemented

Dries Kimpe dkimpe at mcs.anl.gov
Tue Apr 30 10:50:55 CDT 2013


* Matthieu Dorier <matthieu.dorier at irisa.fr> [2013-04-30 17:32:41]:

> If I were to implement an ADIO interface to a file system in mpich3,
> would I have to implement optimizations like two-phase I/O myself or are
> these optimizations implemented outside ADIO, independently of the file
> system? 

Hi Matthieu,

The ADIO interface enables a filesystem driver to override this
functionality, but typically it is 'inherited' by using the _generic_
variants.

For example, for BGL:


struct ADIOI_Fns_struct ADIO_BGL_operations = {
    ADIOI_BGL_Open, /* Open */
    ADIOI_GEN_OpenColl, /* Collective open */
    ADIOI_BGL_ReadContig, /* ReadContig */
    ADIOI_BGL_WriteContig, /* WriteContig */
#if BGL_OPTIM_STEP1_2
    ADIOI_BGL_ReadStridedColl, /* ReadStridedColl */
    ADIOI_BGL_WriteStridedColl, /* WriteStridedColl */
#else
    ADIOI_GEN_ReadStridedColl, /* ReadStridedColl */
    ADIOI_GEN_WriteStridedColl, /* WriteStridedColl */
#endif
    ADIOI_GEN_SeekIndividual, /* SeekIndividual */
    ADIOI_BGL_Fcntl, /* Fcntl */
#if BGL_OPTIM_STEP1_1
    ADIOI_BGL_SetInfo, /* SetInfo */
#else
    ADIOI_GEN_SetInfo, /* SetInfo */
#endif
    ADIOI_BGL_ReadStrided, /* ReadStrided */
    ADIOI_BGL_WriteStrided, /* WriteStrided */
    ADIOI_BGL_Close, /* Close */
#ifdef ROMIO_HAVE_WORKING_AIO
#warning Consider BG support for NFS before enabling this.
    ADIOI_GEN_IreadContig, /* IreadContig */
    ADIOI_GEN_IwriteContig, /* IwriteContig */
#else
    ADIOI_FAKE_IreadContig, /* IreadContig */
    ADIOI_FAKE_IwriteContig, /* IwriteContig */
#endif
    ADIOI_GEN_IODone, /* ReadDone */
    ADIOI_GEN_IODone, /* WriteDone */
    ADIOI_GEN_IOComplete, /* ReadComplete */
    ADIOI_GEN_IOComplete, /* WriteComplete */
    ADIOI_GEN_IreadStrided, /* IreadStrided */
    ADIOI_GEN_IwriteStrided, /* IwriteStrided */
    ADIOI_BGL_Flush, /* Flush */
    ADIOI_GEN_Resize, /* Resize */
    ADIOI_GEN_Delete, /* Delete */
    ADIOI_GEN_Feature, /* Features */
};


All of the _GEN_ functions are ADIO independent implementations.

  Hope this helps,
  Dries


-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.mpich.org/pipermail/discuss/attachments/20130430/fbea0008/attachment.sig>


More information about the discuss mailing list