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 and MPI_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
 
©  |   Cornell University    |   Center for Advanced Computing    |   Copyright Statement    |   Inclusivity Statement