MPI_Iscatterv function
Syntax
int MPIAPI MPI_Iscatterv(
_In_opt_ const void *sendbuf,
_In_opt_ const int sendcounts[],
_In_opt_ const int displs[],
_In_ 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, optional]
The pointer to a buffer that contains the data to be sent by the root process.This parameter is ignored for all non-root processes.
If the comm parameter references an intracommunicator, you can specify an in-place option by specifying MPI_IN_PLACE in the root process. The recvcount and recvtype parameters are ignored. The scattered vector is still considered to contain n segments, where n is the group size; the segment that corresponds to the root process is not moved.
sendcounts[] [in, optional]
The number of elements to send to each process. If sendcounts[i] is zero, the data part of the message for that process is empty.This parameter is ignored for all non-root processes.
displs[] [in, optional]
The locations of the data to send to each communicator process. Each location in the array is relative to the corresponding element of the sendbuf array.In the sendbuf, sendcounts, and displs parameter arrays, the nth element of each array refers to the data to be sent to the nth communicator process.
This parameter is significant only at the root process.
sendtype [in]
The data type of each element in the buffer.This parameter is ignored for all non-root processes.
recvbuf [out, optional]
The pointer to a buffer that contains the data that is received on each process. The number and data type of the elements in the buffer are specified in the recvcount and recvtype parameters.recvcount [in]
The number of elements in the receive buffer. If the count is zero, the data part of the message is empty.recvtype [in]
The data type of the elements in the receive buffer.root [in]
The rank in the sending process within the specified communicator.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_ISCATTERV(SENDBUF, SENDCOUNTS, DISPLS, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNTS(*), DISPLS(*), SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR
Remarks
A non-blocking call initiates a collective reduction 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 reduction operations can mitigate possible synchronizing effects of reduction operations by running them in the “background.”
All completion calls (e.g., MPI_Wait) are supported for non-blocking reduction operations.
Requirements
Product |
Microsoft MPI v7 |
Header |
Mpi.h; Mpif.h |
Library |
Msmpi.lib |
DLL |
Msmpi.dll |