您的位置:首页 > 其它

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

2012-10-09 20:13 239 查看
学习资料 《高性能计算之并行编程技术 -- 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_ALLTOALL 全互换
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: