NewMadeleine

Documentation

nm_mpi_collective.h File Reference

declarations for MPI collectives More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions: Collective communications

typedef void MPI_User_function(void *invec, void *inoutvec, int *len, MPI_Datatype *datatype)
 User combination function for reduction. More...
 
typedef void MPI_User_function_c(void *invec, void *inoutvec, MPI_Count *len, MPI_Datatype *datatype)
 
int MPI_Barrier (MPI_Comm comm)
 Blocks the caller until all group members have called the routine. More...
 
int MPI_Ibarrier (MPI_Comm comm, MPI_Request *request)
 
int MPI_Bcast (void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm)
 Broadcasts a message from the process with rank root to all processes of the group, itself included. More...
 
int MPI_Bcast_c (void *buffer, MPI_Count count, MPI_Datatype datatype, int root, MPI_Comm comm)
 
int MPI_Ibcast (void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm, MPI_Request *request)
 
int MPI_Ibcast_c (void *buffer, MPI_Count count, MPI_Datatype datatype, int root, MPI_Comm comm, MPI_Request *request)
 
int MPI_Gather (const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
 Each process sends the contents of its send buffer to the root process. More...
 
int MPI_Gather_c (const void *sendbuf, MPI_Count sendcount, MPI_Datatype sendtype, void *recvbuf, MPI_Count recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
 
int MPI_Igather (const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Request *request)
 
int MPI_Igather_c (const void *sendbuf, MPI_Count sendcount, MPI_Datatype sendtype, void *recvbuf, MPI_Count recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Request *request)
 
int MPI_Gatherv (const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, int root, MPI_Comm comm)
 Extends the functionality of MPI_Gather() by allowing a varying count of data. More...
 
int MPI_Gatherv_c (const void *sendbuf, MPI_Count sendcount, MPI_Datatype sendtype, void *recvbuf, const MPI_Count recvcounts[], const MPI_Aint displs[], MPI_Datatype recvtype, int root, MPI_Comm comm)
 
int MPI_Allgather (const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
 Extends the functionality of MPI_Gather(), except all processes receive the result. More...
 
int MPI_Allgather_c (const void *sendbuf, MPI_Count sendcount, MPI_Datatype sendtype, void *recvbuf, MPI_Count recvcount, MPI_Datatype recvtype, MPI_Comm comm)
 
int MPI_Iallgather (const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Request *request)
 
int MPI_Iallgather_c (const void *sendbuf, MPI_Count sendcount, MPI_Datatype sendtype, void *recvbuf, MPI_Count recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Request *request)
 
int MPI_Allgatherv (const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, MPI_Comm comm)
 Extends the functionality of MPI_Gatherv(), except all processes receive the result. More...
 
int MPI_Allgatherv_c (const void *sendbuf, MPI_Count sendcount, MPI_Datatype sendtype, void *recvbuf, const MPI_Count recvcounts[], const MPI_Aint displs[], MPI_Datatype recvtype, MPI_Comm comm)
 
int MPI_Scatter (const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
 Inverse operation of MPI_Gather() More...
 
int MPI_Scatter_c (const void *sendbuf, MPI_Count sendcount, MPI_Datatype sendtype, void *recvbuf, MPI_Count recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
 
int MPI_Scatterv (const void *sendbuf, const int sendcounts[], const int displs[], MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
 
int MPI_Scatterv_c (const void *sendbuf, const MPI_Count sendcounts[], const MPI_Aint displs[], MPI_Datatype sendtype, void *recvbuf, MPI_Count recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
 
int MPI_Alltoall (const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvType, MPI_Comm comm)
 Extension of MPI_Allgather() to the case where each process sends distinct data to each of the receivers. More...
 
int MPI_Alltoall_c (const void *sendbuf, MPI_Count sendcount, MPI_Datatype sendtype, void *recvbuf, MPI_Count recvcount, MPI_Datatype recvType, MPI_Comm comm)
 
int MPI_Ialltoall (const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvType, MPI_Comm comm, MPI_Request *request)
 
int MPI_Ialltoall_c (const void *sendbuf, MPI_Count sendcount, MPI_Datatype sendtype, void *recvbuf, MPI_Count recvcount, MPI_Datatype recvType, MPI_Comm comm, MPI_Request *request)
 
int MPI_Alltoallv (const void *sendbuf, const int sendcounts[], const int sdispls[], MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int rdispls[], MPI_Datatype recvType, MPI_Comm comm)
 Adds flexibility to MPI_Alltoall() in that the location of data for the send is specified by sdispls and the location of the placement of the data on the receive side is specified by rdispls. More...
 
int MPI_Alltoallv_c (const void *sendbuf, const MPI_Count sendcounts[], const MPI_Aint sdispls[], MPI_Datatype sendtype, void *recvbuf, const MPI_Count recvcounts[], const MPI_Aint rdispls[], MPI_Datatype recvType, MPI_Comm comm)
 
int MPI_Ialltoallv (const void *sendbuf, const int sendcounts[], const int sdispls[], MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Request *request)
 
int MPI_Ialltoallv_c (const void *sendbuf, const MPI_Count sendcounts[], const MPI_Aint sdispls[], MPI_Datatype sendtype, void *recvbuf, const MPI_Count recvcounts[], const MPI_Aint rdispls[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Request *request)
 
int MPI_Op_create (MPI_User_function *function, int commute, MPI_Op *op)
 Binds a user-defined global operation to an op handle that can subsequently used in a global reduction operation. More...
 
int MPI_Op_create_c (MPI_User_function_c *function, int commute, MPI_Op *op)
 
int MPI_Op_free (MPI_Op *op)
 Marks a user-defined reduction operation for deallocation. More...
 
int MPI_Reduce (const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm)
 Combines the elements provided in the input buffer of each process in the group, using the operation op, and returns the combined value in the output buffer of the process with rank root. More...
 
int MPI_Reduce_c (const void *sendbuf, void *recvbuf, MPI_Count count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm)
 
int MPI_Reduce_local (const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op)
 
int MPI_Reduce_local_c (const void *sendbuf, void *recvbuf, MPI_Count count, MPI_Datatype datatype, MPI_Op op)
 
int MPI_Ireduce (const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm, MPI_Request *request)
 
int MPI_Ireduce_c (const void *sendbuf, void *recvbuf, MPI_Count count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm, MPI_Request *request)
 
int MPI_Scan (const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
 
int MPI_Scan_c (const void *sendbuf, void *recvbuf, MPI_Count count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
 
int MPI_Allreduce (const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
 Combines the elements provided in the input buffer of each process in the group, using the operation op, and returns the combined value in the output buffer of each process in the group. More...
 
int MPI_Allreduce_c (const void *sendbuf, void *recvbuf, MPI_Count count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
 
int MPI_Iallreduce (const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Request *request)
 
int MPI_Iallreduce_c (const void *sendbuf, void *recvbuf, MPI_Count count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Request *request)
 
int MPI_Reduce_scatter (const void *sendbuf, void *recvbuf, const int recvcounts[], MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
 First does an element-wise reduction on vector of elements in the send buffer defined by sendbuf, count and datatype. More...
 
int MPI_Reduce_scatter_c (const void *sendbuf, void *recvbuf, const MPI_Count recvcounts[], MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
 

Detailed Description

declarations for MPI collectives

Definition in file nm_mpi_collective.h.

Typedef Documentation

◆ MPI_User_function

typedef void MPI_User_function(void *invec, void *inoutvec, int *len, MPI_Datatype *datatype)

User combination function for reduction.

Definition at line 33 of file nm_mpi_collective.h.

◆ MPI_User_function_c

typedef void MPI_User_function_c(void *invec, void *inoutvec, MPI_Count *len, MPI_Datatype *datatype)

Definition at line 35 of file nm_mpi_collective.h.

Function Documentation

◆ MPI_Allgather()

int MPI_Allgather ( const void *  sendbuf,
int  sendcount,
MPI_Datatype  sendtype,
void *  recvbuf,
int  recvcount,
MPI_Datatype  recvtype,
MPI_Comm  comm 
)

Extends the functionality of MPI_Gather(), except all processes receive the result.

Parameters
sendbufstarting address of send buffer
sendcountnumber of elements in send buffer
sendtypedata type of send buffer elements
recvbufaddress of receive buffer
recvcountnumber of elements received from any process
recvtypedata type of receive buffer elements
commcommunicator
Returns
MPI status

◆ MPI_Allgather_c()

int MPI_Allgather_c ( const void *  sendbuf,
MPI_Count  sendcount,
MPI_Datatype  sendtype,
void *  recvbuf,
MPI_Count  recvcount,
MPI_Datatype  recvtype,
MPI_Comm  comm 
)

◆ MPI_Allgatherv()

int MPI_Allgatherv ( const void *  sendbuf,
int  sendcount,
MPI_Datatype  sendtype,
void *  recvbuf,
const int  recvcounts[],
const int  displs[],
MPI_Datatype  recvtype,
MPI_Comm  comm 
)

Extends the functionality of MPI_Gatherv(), except all processes receive the result.

Parameters
sendbufstarting address of send buffer
sendcountnumber of elements in send buffer
sendtypedata type of send buffer elements
recvbufaddress of receive buffer
recvcountsinteger array
displsinteger array
recvtypedata type of receive buffer elements
commcommunicator
Returns
MPI status

◆ MPI_Allgatherv_c()

int MPI_Allgatherv_c ( const void *  sendbuf,
MPI_Count  sendcount,
MPI_Datatype  sendtype,
void *  recvbuf,
const MPI_Count  recvcounts[],
const MPI_Aint  displs[],
MPI_Datatype  recvtype,
MPI_Comm  comm 
)

◆ MPI_Allreduce()

int MPI_Allreduce ( const void *  sendbuf,
void *  recvbuf,
int  count,
MPI_Datatype  datatype,
MPI_Op  op,
MPI_Comm  comm 
)

Combines the elements provided in the input buffer of each process in the group, using the operation op, and returns the combined value in the output buffer of each process in the group.

Parameters
sendbufstarting address of send buffer
recvbufstarting address of receive buffer
countnumber of elements in send buffer
datatypedata type of elements of send buffer
opoperation
commcommunicator
Returns
MPI status

◆ MPI_Allreduce_c()

int MPI_Allreduce_c ( const void *  sendbuf,
void *  recvbuf,
MPI_Count  count,
MPI_Datatype  datatype,
MPI_Op  op,
MPI_Comm  comm 
)

◆ MPI_Alltoall()

int MPI_Alltoall ( const void *  sendbuf,
int  sendcount,
MPI_Datatype  sendtype,
void *  recvbuf,
int  recvcount,
MPI_Datatype  recvType,
MPI_Comm  comm 
)

Extension of MPI_Allgather() to the case where each process sends distinct data to each of the receivers.

The jth block sent from process i is received by process j and is placed in the ith block of recvbuf.

Parameters
sendbufstarting address of send buffer
sendcountnumber of elements sent to each process
sendtypedata type of send buffer elements
recvbufaddress of receive buffer
recvcountnumber of elements received from any process
recvTypedata type of receive buffer elements
commcommunicator
Returns
MPI status

◆ MPI_Alltoall_c()

int MPI_Alltoall_c ( const void *  sendbuf,
MPI_Count  sendcount,
MPI_Datatype  sendtype,
void *  recvbuf,
MPI_Count  recvcount,
MPI_Datatype  recvType,
MPI_Comm  comm 
)

◆ MPI_Alltoallv()

int MPI_Alltoallv ( const void *  sendbuf,
const int  sendcounts[],
const int  sdispls[],
MPI_Datatype  sendtype,
void *  recvbuf,
const int  recvcounts[],
const int  rdispls[],
MPI_Datatype  recvType,
MPI_Comm  comm 
)

Adds flexibility to MPI_Alltoall() in that the location of data for the send is specified by sdispls and the location of the placement of the data on the receive side is specified by rdispls.

Parameters
sendbufstarting address of send buffer
sendcountinteger array equal to the group size specifying the number of elements to send to each processor
sdisplsinteger array of length group size. Entry j specifies the displacement relative to sendbuf from which to take the outgoing data destined for process j
sendtypedata type of send buffer elements
recvbufaddress of receive buffer
recvcountinteger array equal to the group size specifying the number of elements that can be received from each processor
recvdisplsinteger array
recvTypedata type of receive buffer elements
commcommunicator
Returns
MPI status

◆ MPI_Alltoallv_c()

int MPI_Alltoallv_c ( const void *  sendbuf,
const MPI_Count  sendcounts[],
const MPI_Aint  sdispls[],
MPI_Datatype  sendtype,
void *  recvbuf,
const MPI_Count  recvcounts[],
const MPI_Aint  rdispls[],
MPI_Datatype  recvType,
MPI_Comm  comm 
)

◆ MPI_Barrier()

int MPI_Barrier ( MPI_Comm  comm)

Blocks the caller until all group members have called the routine.

Parameters
commcommunicator
Returns
MPI status

◆ MPI_Bcast()

int MPI_Bcast ( void *  buffer,
int  count,
MPI_Datatype  datatype,
int  root,
MPI_Comm  comm 
)

Broadcasts a message from the process with rank root to all processes of the group, itself included.

Parameters
bufferstarting address of buffer
countnumber of entries in buffer
datatypedata type of buffer
rootrank of broadcast root
commcommunicator
Returns
MPI status

◆ MPI_Bcast_c()

int MPI_Bcast_c ( void *  buffer,
MPI_Count  count,
MPI_Datatype  datatype,
int  root,
MPI_Comm  comm 
)

◆ MPI_Gather()

int MPI_Gather ( const void *  sendbuf,
int  sendcount,
MPI_Datatype  sendtype,
void *  recvbuf,
int  recvcount,
MPI_Datatype  recvtype,
int  root,
MPI_Comm  comm 
)

Each process sends the contents of its send buffer to the root process.

Parameters
sendbufstarting address of send buffer
sendcountnumber of elements in send buffer
sendtypedata type of send buffer elements
recvbufaddress of receive buffer
recvcountnumber of elements for any single receive
recvtypedata type of recv buffer elements
rootrank of receiving process
commcommunicator
Returns
MPI status

◆ MPI_Gather_c()

int MPI_Gather_c ( const void *  sendbuf,
MPI_Count  sendcount,
MPI_Datatype  sendtype,
void *  recvbuf,
MPI_Count  recvcount,
MPI_Datatype  recvtype,
int  root,
MPI_Comm  comm 
)

◆ MPI_Gatherv()

int MPI_Gatherv ( const void *  sendbuf,
int  sendcount,
MPI_Datatype  sendtype,
void *  recvbuf,
const int  recvcounts[],
const int  displs[],
MPI_Datatype  recvtype,
int  root,
MPI_Comm  comm 
)

Extends the functionality of MPI_Gather() by allowing a varying count of data.

Parameters
sendbufstarting address of send buffer
sendcountnumber of elements in send buffer
sendtypedata type of send buffer elements
recvbufaddress of receive buffer (significant only at root)
recvcountsinteger array of length group size containing the number of elements that are received from each process (significant only at root)
displsinteger array of length group size. Entry i specifies the displacement relative to recvbuf at which to place the incoming data from process i (significant only at root)
recvtypedata type of recv buffer elements (significant only at root)
rootrank of receiving process
commcommunicator
Returns
MPI status

◆ MPI_Gatherv_c()

int MPI_Gatherv_c ( const void *  sendbuf,
MPI_Count  sendcount,
MPI_Datatype  sendtype,
void *  recvbuf,
const MPI_Count  recvcounts[],
const MPI_Aint  displs[],
MPI_Datatype  recvtype,
int  root,
MPI_Comm  comm 
)

◆ MPI_Iallgather()

int MPI_Iallgather ( const void *  sendbuf,
int  sendcount,
MPI_Datatype  sendtype,
void *  recvbuf,
int  recvcount,
MPI_Datatype  recvtype,
MPI_Comm  comm,
MPI_Request request 
)

◆ MPI_Iallgather_c()

int MPI_Iallgather_c ( const void *  sendbuf,
MPI_Count  sendcount,
MPI_Datatype  sendtype,
void *  recvbuf,
MPI_Count  recvcount,
MPI_Datatype  recvtype,
MPI_Comm  comm,
MPI_Request request 
)

◆ MPI_Iallreduce()

int MPI_Iallreduce ( const void *  sendbuf,
void *  recvbuf,
int  count,
MPI_Datatype  datatype,
MPI_Op  op,
MPI_Comm  comm,
MPI_Request request 
)

◆ MPI_Iallreduce_c()

int MPI_Iallreduce_c ( const void *  sendbuf,
void *  recvbuf,
MPI_Count  count,
MPI_Datatype  datatype,
MPI_Op  op,
MPI_Comm  comm,
MPI_Request request 
)

◆ MPI_Ialltoall()

int MPI_Ialltoall ( const void *  sendbuf,
int  sendcount,
MPI_Datatype  sendtype,
void *  recvbuf,
int  recvcount,
MPI_Datatype  recvType,
MPI_Comm  comm,
MPI_Request request 
)

◆ MPI_Ialltoall_c()

int MPI_Ialltoall_c ( const void *  sendbuf,
MPI_Count  sendcount,
MPI_Datatype  sendtype,
void *  recvbuf,
MPI_Count  recvcount,
MPI_Datatype  recvType,
MPI_Comm  comm,
MPI_Request request 
)

◆ MPI_Ialltoallv()

int MPI_Ialltoallv ( const void *  sendbuf,
const int  sendcounts[],
const int  sdispls[],
MPI_Datatype  sendtype,
void *  recvbuf,
const int  recvcounts[],
const int  rdispls[],
MPI_Datatype  recvtype,
MPI_Comm  comm,
MPI_Request request 
)

◆ MPI_Ialltoallv_c()

int MPI_Ialltoallv_c ( const void *  sendbuf,
const MPI_Count  sendcounts[],
const MPI_Aint  sdispls[],
MPI_Datatype  sendtype,
void *  recvbuf,
const MPI_Count  recvcounts[],
const MPI_Aint  rdispls[],
MPI_Datatype  recvtype,
MPI_Comm  comm,
MPI_Request request 
)

◆ MPI_Ibarrier()

int MPI_Ibarrier ( MPI_Comm  comm,
MPI_Request request 
)

◆ MPI_Ibcast()

int MPI_Ibcast ( void *  buffer,
int  count,
MPI_Datatype  datatype,
int  root,
MPI_Comm  comm,
MPI_Request request 
)

◆ MPI_Ibcast_c()

int MPI_Ibcast_c ( void *  buffer,
MPI_Count  count,
MPI_Datatype  datatype,
int  root,
MPI_Comm  comm,
MPI_Request request 
)

◆ MPI_Igather()

int MPI_Igather ( const void *  sendbuf,
int  sendcount,
MPI_Datatype  sendtype,
void *  recvbuf,
int  recvcount,
MPI_Datatype  recvtype,
int  root,
MPI_Comm  comm,
MPI_Request request 
)

◆ MPI_Igather_c()

int MPI_Igather_c ( const void *  sendbuf,
MPI_Count  sendcount,
MPI_Datatype  sendtype,
void *  recvbuf,
MPI_Count  recvcount,
MPI_Datatype  recvtype,
int  root,
MPI_Comm  comm,
MPI_Request request 
)

◆ MPI_Ireduce()

int MPI_Ireduce ( const void *  sendbuf,
void *  recvbuf,
int  count,
MPI_Datatype  datatype,
MPI_Op  op,
int  root,
MPI_Comm  comm,
MPI_Request request 
)

◆ MPI_Ireduce_c()

int MPI_Ireduce_c ( const void *  sendbuf,
void *  recvbuf,
MPI_Count  count,
MPI_Datatype  datatype,
MPI_Op  op,
int  root,
MPI_Comm  comm,
MPI_Request request 
)

◆ MPI_Op_create()

int MPI_Op_create ( MPI_User_function function,
int  commute,
MPI_Op op 
)

Binds a user-defined global operation to an op handle that can subsequently used in a global reduction operation.

Parameters
functionuser defined function
commutetrue if commutative; false otherwise
opoperation
Returns
MPI status

◆ MPI_Op_create_c()

int MPI_Op_create_c ( MPI_User_function_c function,
int  commute,
MPI_Op op 
)

◆ MPI_Op_free()

int MPI_Op_free ( MPI_Op op)

Marks a user-defined reduction operation for deallocation.

Parameters
opoperation to be freed
Returns
MPI status

◆ MPI_Reduce()

int MPI_Reduce ( const void *  sendbuf,
void *  recvbuf,
int  count,
MPI_Datatype  datatype,
MPI_Op  op,
int  root,
MPI_Comm  comm 
)

Combines the elements provided in the input buffer of each process in the group, using the operation op, and returns the combined value in the output buffer of the process with rank root.

Parameters
sendbufaddress of send buffer
recvbufaddress of receive buffer
countnumber of elements in send buffer
datatypedata type of elements of send buffer
opreduce operation
rootrank of root process
commcommunicator
Returns
MPI status

◆ MPI_Reduce_c()

int MPI_Reduce_c ( const void *  sendbuf,
void *  recvbuf,
MPI_Count  count,
MPI_Datatype  datatype,
MPI_Op  op,
int  root,
MPI_Comm  comm 
)

◆ MPI_Reduce_local()

int MPI_Reduce_local ( const void *  sendbuf,
void *  recvbuf,
int  count,
MPI_Datatype  datatype,
MPI_Op  op 
)

◆ MPI_Reduce_local_c()

int MPI_Reduce_local_c ( const void *  sendbuf,
void *  recvbuf,
MPI_Count  count,
MPI_Datatype  datatype,
MPI_Op  op 
)

◆ MPI_Reduce_scatter()

int MPI_Reduce_scatter ( const void *  sendbuf,
void *  recvbuf,
const int  recvcounts[],
MPI_Datatype  datatype,
MPI_Op  op,
MPI_Comm  comm 
)

First does an element-wise reduction on vector of elements in the send buffer defined by sendbuf, count and datatype.

Next, the resulting vector of results is split into n disjoint segments, where n is the number of members in the group. Segment i contains recvcounts[i] elements. The ith segment is sent to process i and stored in the receive buffer defined by recvbuf, recvcounts[i] and datatype.

Parameters
sendbufstarting address of send buffer
recvbufstarting address of receive buffer
recvcountsinteger array specifying the number of elements in result distributed to each process. Array must be identical on all calling processes
datatypedata type of elements of input buffer
opoperation
commcommunicator
Returns
MPI status

◆ MPI_Reduce_scatter_c()

int MPI_Reduce_scatter_c ( const void *  sendbuf,
void *  recvbuf,
const MPI_Count  recvcounts[],
MPI_Datatype  datatype,
MPI_Op  op,
MPI_Comm  comm 
)

◆ MPI_Scan()

int MPI_Scan ( const void *  sendbuf,
void *  recvbuf,
int  count,
MPI_Datatype  datatype,
MPI_Op  op,
MPI_Comm  comm 
)

◆ MPI_Scan_c()

int MPI_Scan_c ( const void *  sendbuf,
void *  recvbuf,
MPI_Count  count,
MPI_Datatype  datatype,
MPI_Op  op,
MPI_Comm  comm 
)

◆ MPI_Scatter()

int MPI_Scatter ( const void *  sendbuf,
int  sendcount,
MPI_Datatype  sendtype,
void *  recvbuf,
int  recvcount,
MPI_Datatype  recvtype,
int  root,
MPI_Comm  comm 
)

Inverse operation of MPI_Gather()

Parameters
sendbufaddress of send buffer
sendcountnumber of elements sent to each process
sendtypedata type of send buffer elements
recvbufaddress of receive buffer
recvcountnumber of elements in receive buffer
recvtypedata type of receive buffer elements
rootrank of sending process
commcommunicator
Returns
MPI status

◆ MPI_Scatter_c()

int MPI_Scatter_c ( const void *  sendbuf,
MPI_Count  sendcount,
MPI_Datatype  sendtype,
void *  recvbuf,
MPI_Count  recvcount,
MPI_Datatype  recvtype,
int  root,
MPI_Comm  comm 
)

◆ MPI_Scatterv()

int MPI_Scatterv ( const void *  sendbuf,
const int  sendcounts[],
const int  displs[],
MPI_Datatype  sendtype,
void *  recvbuf,
int  recvcount,
MPI_Datatype  recvtype,
int  root,
MPI_Comm  comm 
)

◆ MPI_Scatterv_c()

int MPI_Scatterv_c ( const void *  sendbuf,
const MPI_Count  sendcounts[],
const MPI_Aint  displs[],
MPI_Datatype  sendtype,
void *  recvbuf,
MPI_Count  recvcount,
MPI_Datatype  recvtype,
int  root,
MPI_Comm  comm 
)