学习资料 《高性能计算之并行编程技术 ---- MPI 并行程序设计》
学习笔记
收集 MPI_GATHER 是典型的多对一通信的例子。
MPI_GATHER(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root , comm)
IN sendbuf 发送消息缓冲区的起始地址(可选数据类型)
IN sendcount 发送消息缓冲区中的数据个数(整型)
IN sendtype 发送消息缓冲区中的数据类型(句柄)
OUT recvbuf 接收消息缓冲区的起始地址(可选数据类型)
IN recvtype 接收元素的数据类型(句柄,仅对于根进程有意义)
IN root 接收进程的序列号(整型)
IN comm 通信域(句柄)
int MPI_Gather(void* sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, int recvcount, MPI_Datatype recvtype, int root , MPI_Comm comm)
(NOTE 2012-09-24: 在这里,MPI_GATHE 既有发送缓冲区,也有接收缓冲区, gather 应该是一个接收操作,但为什么有发送缓冲区?)
MPI_GATHERV(sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, root, comm)
IN sendbuf 发送消息缓冲区的起始地址(可选数据类型)
IN sendcount 发送消息缓冲区的数据个数(整型)
IN sendtype 发送消息缓冲区中的数据类型(句柄)
OUT recvbuf 接收消息缓冲区的起始地址(可选数据类型, 仅对跟进程有意义)
IN recvounts 整型数组(长度为组的大小),其值为从每个进程接收的数据个数
IN displs 整数数组,每个入口表示相对于recvbuf的位移
IN recvtype 接收消息缓冲区中数据类型(句柄)
IN root 接收进程的标识号(句柄)
IN comm 通信域(句柄)
int MPI_Gather(void* sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, int *recvcounts, int *displs, MPI_Datatype recvtype, int root , MPI_Comm comm)
学习感想
浙公网安备 33010602011771号