学习资料 《高性能计算之并行编程技术 -- MPI并行程序设计》 (都志辉)
学习笔记
MPI_GATHER是将数据收集到ROOT进程,而MPI_ALLGATHER相当于每一个进程都作为ROOT执行了一次MPI_GATHER调用, 即每一个进程都收集到了其他所有进程的数据。
函数:
int MPI_Allgather(void* sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, int recvcount, MPI_Datatype recvtype,
MPI_Comm comm)
sendbuf 发送消息缓冲区的起始地址(可选数据类型)
sendcount 发送消息缓冲区中的数据个数(整型)
sendtype 发送消息缓冲区中的数据类型(句柄)
recvbuf 接收缓冲区的起始地址(可选数据类型)
recvcount 从其它进程中接收的数据个数(整型)
recvtype 接收消息缓冲区的数据类型(句柄)
comm 通信域
组收集图示
这里,收集的数据是按进程0到N-1排列。
![[MPI] MPI 组通信 -- 组收集 - applesun - 计算机技术学习笔记 [MPI] MPI 组通信 -- 组收集 - applesun - 计算机技术学习笔记](http://img0.ph.126.net/pBJDlwuyRIYK94VU29jRtA==/6597424908912214850.jpg)
学习感想
这里要理解“组”的定义,组表示组内所有成员,函数上多了ALL字符串。
浙公网安备 33010602011771号