Dear ROMIO developers,
It is hard to find any literature or documentation about the
asynchronous implementation ROMIO (or ADIO) use. I have few
questions and It would be great if you can answer them:
- How does ROMIO implement asynchronous I/O? I mean do you use
POSIX-AIO, native Linux kernel AIO (io_submit,..), io_uring, or
anything else? If I debug my code at our Clusters with gdb, I
can see that POSIX-AIO is used. But is this on all systems so?
- When and how does asynchronous I/O progress occur? Do you span
multiple I/O threads for a rank? Is this related to variable
MPICH_ASYNC_PROGRESS? Again with gdb, I can see that several
asynchronous write requests by the same MPI rank are handled
successively by a single thread.
- Is there any related recent publication is can use to cite? I
didn't find anything related to the implementation of
asynchronous MPI-IO, except this: https://web.cels.anl.gov/~thakur/papers/grequest-redesign.pdf.
But is it not outdated?
Best regards,
Ahmad