MPI_Igather function
Gathers data from all members of a group to one member in a non-blocking way.
Syntax
int WINAPI MPI_Igather(
_In_ void *sendbuf,
int sendcount,
MPI_Datatype sendtype,
_Out_opt_ void *recvbuf,
_In_ int recvcount,
_In_ MPI_Datatype recvtype,
_In_ int root,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
Parameters
sendbuf [in]
The pointer to a buffer containing the data to be sent to the root. The buffer consists of sendcount successive elements of the MPI_Datatype indicated by the sendtype handle. The message length is specified in terms of number of elements, not number of bytes.sendcount
The number of sendtype elements in sendbuf. If the value is zero, the data part of the message is empty.sendtype
The MPI_Datatype handle representing the data type of each element in sendbuf.recvbuf [out, optional]
The pointer to a buffer containing the data received from each process on the root, including data sent by the root process (significant only at root). The receive buffer recvbuf is ignored for all non-root processes. On the root process, recvbuf consists of recvcount successive elements of the MPI_Datatype indicated by the recvtype handle. The message length is specified in terms of number of elements, not number of bytes.recvcount [in]
The number of recvtype elements in recvbuf. If the value is zero, the data part of the message is empty (significant only at root).recvtype [in]
The MPI_Datatype handle representing the data type of each element in recvbuf (significant only at root).root [in]
The rank of the receiving process within the MPI_Commcomm.comm [in]
The MPI_Comm communicator handle.request [out]
The MPI_Request handle representing the communication operation.
Return value
Returns MPI_SUCCESS on success. Otherwise, the return value is an error code.
In Fortran, the return value is stored in the IERROR parameter.
Fortran
MPI_IGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE,
ROOT, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR
Remarks
A non-blocking call initiates a collective gather operation which must be completed in a separate completion call. Once initiated, the operation may progress independently of any computation or other communication at participating processes. In this manner, non-blocking gather operations can mitigate possible synchronizing effects of gather operations by running them in the “background.”
All completion calls (e.g., MPI_Wait) are supported for non-blocking gather operations.
Requirements
Product |
Microsoft MPI v6 |
Header |
Mpi.h; Mpif.h |
Library |
Msmpi.lib |
DLL |
Msmpi.dll |