int MPI_Gather (
const void *sendbuf, int sendcount, MPI_Datatype sendtype,
void *recvbuf, int recvcount, MPI_Datatype recvtype,
int root, MPI_Comm comm);
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_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);
int MPI_Gatherv_c (...);
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 (...);
int MPI_Igatherv (
const void *sendbuf, int sendcount, MPI_Datatype sendtype,
void *recvbuf, const int recvcounts [], const int displs [],
MPI_Datatype recvtype, int root, MPI_Comm comm,
MPI_Request *request);
int MPI_Igatherv_c (...);
int MPI_Gather_init (
const void *sendbuf, int sendcount, MPI_Datatype sendtype,
void *recvbuf, int recvcount, MPI_Datatype recvtype,
int root, MPI_Comm comm, MPI_Info info,
MPI_Request *request);
int MPI_Gather_init_c (...);
int MPI_Gatherv_init (
const void *sendbuf, int sendcount, MPI_Datatype sendtype,
void *recvbuf, const int recvcounts [], const int displs [], MPI_Datatype recvtype,
int root, MPI_Comm comm, MPI_Info info,
MPI_Request *request);
int MPI_Gatherv_init_c (...);
sender A, receivers A, A, A
senders A, B, C, receiver ABC
sender ABC, receivers A, B, C
senders A, B, C, receivers ABC, ABC, ABC
senders ABC, DEF, GHI, receivers ADG, BEH, CFI
senders A, B, C, receiver A+B+C
senders A, B, C, receivers A+B+C, A+B+C, A+B+C
senders ABC, DEF, GHI, receivers A+D+G, B+E+H, C+F+I
senders A, B, C, receivers A, A+B, A+B+C
senders A, B, C, receivers N/A, A, A+B
rendez vous
semantics differ for intra and inter communication
intra communication can use special argument for single buffer