Allreduce
|
Allreduce是MPI组规约函数。
作用:将各个独立进程中的send buffer进行数学(例如加法、乘法)或逻辑(例如与、或)运算,然后将结果同步到通信域内所有进程的receive buffer中。
|
| int MPI_Allreduce(void *sendbuf, void *recvbuf, int 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)
|
|
Bcast
|
Bcast是MPI广播操作函数。
作用:root进程将buffer中的信息发送给通信域内其余进程,使得所有进程获取相同的信息。
|
| int MPI_Bcast(void *buffer, int 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)
|
|
Barrier
|
Barrier是MPI同步函数。
作用:该通信域中全部进程进行同步操作,即保证进程调用函数后具有良好的同步性。
|
| int MPI_Barrier(MPI_Comm comm)
|
|
| int MPI_Ibarrier(MPI_Comm comm, MPI_Request *request)
|
|
Alltoallv
|
Alltoallv是MPI多对多通信函数。
作用:该通信域中全部进程进行点对点通信操作,发送数据至其他进程,并从其他进程接收数据,且通信中每个进程发送和接收的长度可变。
|
| 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)
|
|
| 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)
|
|
Allgatherv
|
Allgatherv是MPI数据收集函数。
作用:收集该通信域中每个进程可变的数据,并将收集的数据传送给该通信域中的所有进程。
|
| 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)
|
|
| int MPI_Iallgatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Request *request)
|
|
Scatterv
|
Scatterv是MPI数据分发函数。
作用:该通信域中根进程将不同的数据块分发给该通信域中不同的进程。
|
| 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_Iscatterv(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_Request *request)
|
|
Gatherv
|
Gatherv是MPI数据收集函数。
作用:收集该通信域中每个进程可变的数据。
|
| 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_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)
|
|