[dcmf] romio updates

Bob Cernohous bobc at us.ibm.com
Thu Feb 14 10:36:06 CST 2008


robl at mcs.anl.gov (Robert Latham) wrote on 02/14/2008 10:08:03 AM:

> Do you mean aio_read/aio_write/aio_suspend/aio_error/aio_return are
> ENOSYS on BlueGene or are they just wrapers around blocking I/O? 

We don't have <aio.h> so we followed the 

#ifndef ROMIO_HAVE_WORKING_AOI and #ifndef HAVE_AIO_H paths. 

I'm not sure if there are some wrappers buried somewhere in the code.

> The easiest thing to use is just ADIOI_FAKE_IreadContig and
> ADIOI_FAKE_IwriteContig, which will carry out ADIO_ReadContig and
> return an already-completed MPI request object. 

I see the new ad_ufs does that and uses GEN done's:

+#ifdef ROMIO_HAVE_WORKING_AIO
     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 */

That seem reasonable?

I'm just not sure offhand if we're losing something without this "old 
way"? or was it moot since we didn't support aio?

> old way: ROMIO implemented its own (incompatible) MPIO_Request
> objects.  Instead of MPI_TEST/MPI_WAIT/etc, callers had to use
> MPIO_TEST and MPIO_WAIT.  ROMIO did its own bookeeping. 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alcf.anl.gov/pipermail/dcmf/attachments/20080214/7a469bf6/attachment.htm>


More information about the dcmf mailing list