[MPI] MPI 组通信 -- 全互换 MPI_Alltoall

学习资料 《高性能计算之并行编程技术 -- MPI并行程序设计》(都志辉 等)           

学习笔记

 函数

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

        sendbuf  发送消息缓冲区的起始地址(可选数据类型)

        sendcount 发送到每个进程的数据个数(整型)

        sendtype 发送消息缓冲区的数据类型(句柄)

        recvbuf    接收消息缓冲区的起始地址(可选数据类型)

        recvcount 从每个进程中接收的元素个数(整型)

        recvtype   接收消息缓冲区的数据类型(句柄)

        comm    通信域(句柄)

功能

      MPI_ALLGATHER 每个进程散发一个相同的消息给所有的进程,MPI_ALLTOALL散发给不同进程的消息是不同的,因此它的发送缓冲区也是一个数组。 MPI_ALLTOALL的每个进程可以向每个接收者发送数目不同的数据。 第 i 个进程发送的第 j 块数据将被第 j 个进程接收并存放在其接收消息缓冲区 recvbuf 的第 i 块。 每个进程的 sendcount 和 sendtype 的类型必须和所有其他进程的 recvcount 和 recvtype 相同, 这意味着每个进程和根进程之间, 发送的数据量和接收的数据量相等。

               [MPI] MPI 组通信 -- 全互换 MPI_Alltoall - applesun - 计算机技术学习笔记    

                                                                                      MPI_ALLTOALL 全互换 

posted on 2012-10-09 20:13  applesun0757  阅读(724)  评论(0)    收藏  举报