Asynchronous Operations
Asynchronous operations give the system even more opportunities to optimize I/O, by permitting greater flexibilty in the timing of when I/O activity takes place on different tasks.
For each noncollective I/O routine, there is an nonblocking variant.
MPI_File_iwrite
andMPI_File_iread
, e.g., are nonblocking calls.- The general naming convention is to replace "read" with "iread", or "write" with "iwrite".
- These nonblocking routines are analogous to the nonblocking sends and receives in MPI point-to-point communication.
- Accordingly, these types of calls should be terminated with
MPI_Wait
.
For each collective I/O routine, there is a split variant.
- A collective I/O operation can begin at some point and end at some later point.
- When using file pointers:
MPI_File_read_all_begin/end
;MPI_File_write_all_begin/end
- When using explicit offsets:
MPI_File_read_at_all_begin/end
;MPI_File_write_at_all_begin/end
- When using shared pointers:
MPI_File_read_ordered_begin/end
;MPI_File_write_ordered_begin/end