MPI_File_iread(3)MPI_File_iread(3)NAMEMPI_File_iread - Performs a nonblocking read using an individual file
pointer
SYNOPSIS
C:
#include "mpi.h"
int MPI_File_iread (MPI_File fh, void *buf,
int count, MPI_Datatype datatype, MPI_Request *request)
Fortran:
INCLUDE "mpif.h" (or USE MPI)
<type> BUF(*)
INTEGER fh, count, datatype, request,
ierror
CALL MPI_FILE_IREAD(fh, buf, count, datatype,
request, ierror)
DESCRIPTIONMPI_File_iread is a nonblocking version of the MPI_FILE_READ interface.
MPI_File_iread accepts the following arguments:
fh Specifies the file handle (handle)
count Specifies the number of elements in the buffer (nonnegative
integer)
datatype Specifies the datatype of each buffer element (handle)
buf Returns the initial address of the buffer (choice)
request Returns the request object (handle)
ierror Specifies the return code value for successful completion,
which is in MPI_SUCCESS. MPI_SUCCESS is defined in the mpif.h
file.
Notes for Fortran
All MPI objects (for example, MPI_Datatype, MPI_Comm, MPI_File) are of
type INTEGER.
Page 1
MPI_File_iread(3)MPI_File_iread(3)EXAMPLES
The following Fortran code fragment illustrates file pointer update
semantics:
! Read the first twenty real words in a file into two local
! buffers. Note that when the first MPI_FILE_IREAD returns,
! the file pointer has been updated to point to the
! eleventh real word in the file.
integer bufsize, req1, req2
integer, dimension(MPI_STATUS_SIZE) :: status1, status2
parameter (bufsize=10)
real buf1(bufsize), buf2(bufsize)
call MPI_FILE_OPEN( MPI_COMM_WORLD, 'myoldfile', &
MPI_MODE_RDONLY, MPI_INFO_NULL, myfh, ierr )
call MPI_FILE_SET_VIEW( myfh, 0, MPI_REAL, MPI_REAL, 'native', &
MPI_INFO_NULL, ierr )
call MPI_FILE_IREAD( myfh, buf1, bufsize, MPI_REAL, &
req1, ierr )
call MPI_FILE_IREAD( myfh, buf2, bufsize, MPI_REAL, &
req2, ierr )
call MPIO_WAIT( req1, status1, ierr )
call MPIO_WAIT( req2, status2, ierr )
call MPI_FILE_CLOSE( myfh, ierr )
SEE ALSOMPI_File_close(3), MPI_File_open(3), MPI_File_read(3),
MPI_File_set_view(3), MPI_IO(3)
Page 2