<br><tt><font size=2>robl@mcs.anl.gov (Robert Latham) wrote on 02/14/2008
10:08:03 AM:<br>
<br>
> Do you mean aio_read/aio_write/aio_suspend/aio_error/aio_return are<br>
> ENOSYS on BlueGene or are they just wrapers around blocking I/O? <br>
</font></tt>
<br><tt><font size=2>We don't have <aio.h> so we followed the </font></tt>
<br>
<br><tt><font size=2>#ifndef ROMIO_HAVE_WORKING_AOI and #ifndef HAVE_AIO_H
paths. </font></tt>
<br>
<br><tt><font size=2>I'm not sure if there are some wrappers buried somewhere
in the code.</font></tt>
<br>
<br><tt><font size=2>> The easiest thing to use is just ADIOI_FAKE_IreadContig
and</font></tt>
<br><tt><font size=2>> ADIOI_FAKE_IwriteContig, which will carry out
ADIO_ReadContig and</font></tt>
<br><tt><font size=2>> return an already-completed MPI request object.
</font></tt>
<br>
<br><tt><font size=2>I see the new ad_ufs does that and uses GEN done's:</font></tt>
<br>
<br><tt><font size=2>+#ifdef ROMIO_HAVE_WORKING_AIO</font></tt>
<br><tt><font size=2> ADIOI_GEN_IreadContig, /* IreadContig
*/</font></tt>
<br><tt><font size=2> ADIOI_GEN_IwriteContig, /* IwriteContig
*/</font></tt>
<br><tt><font size=2>+#else</font></tt>
<br><tt><font size=2>+ ADIOI_FAKE_IreadContig, /* IreadContig
*/</font></tt>
<br><tt><font size=2>+ ADIOI_FAKE_IwriteContig, /* IwriteContig
*/</font></tt>
<br><tt><font size=2>+#endif</font></tt>
<br><tt><font size=2> ADIOI_GEN_IODone, /* ReadDone
*/</font></tt>
<br><tt><font size=2> ADIOI_GEN_IODone, /* WriteDone
*/</font></tt>
<br><tt><font size=2> ADIOI_GEN_IOComplete, /* ReadComplete
*/</font></tt>
<br>
<br><tt><font size=2>That seem reasonable?</font></tt>
<br>
<br><tt><font size=2>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?</font></tt>
<br>
<br><tt><font size=2>> old way: ROMIO implemented its own (incompatible)
MPIO_Request</font></tt>
<br><tt><font size=2>> objects. Instead of MPI_TEST/MPI_WAIT/etc,
callers had to use</font></tt>
<br><tt><font size=2>> MPIO_TEST and MPIO_WAIT. ROMIO did its
own bookeeping. </font></tt>
<br>