文件名称:不同类型归约操作的简单对比-zabbix安装及配置(超级详细)
文件大小:940KB
文件格式:PDF
更新时间:2024-06-29 04:22:35
MPI 并行程序设计
13.14 不同类型归约操作的简单对比
本节对归约操作 组归约操作和归约并散发操作进行简单地对比 希望通过对比中能加
深对各种类型归约操作的理解 并正确使用各种类型归约操作
归约操作的效果就是接收缓冲区中数据的改变 而接收缓冲区中数据的改变是直接与各
个进程发送缓冲区中的数据密切相关的
下面就不同类型归约前后各个进程发送缓冲区与接收缓冲区中数据的关系 来说明归约
操作的最终效果
发送缓 冲区数据单元 归约到进程0
A2 B2 C2 进程2
A1 B1 C1 进程1
A0 B0 C0 进程0 A0+B0+C0 A1+B1+C1 A2+B2+C2
进程0 进程1 进程2 接收缓冲区数据单元
图 64 归约前后发送与接收缓冲区的对比
简单的归约操作只有ROOT进程的接收缓冲区在归约后其内容有意义 而其它进程接收
缓冲区中的内容没有意义 ROOT进程接收缓冲区中的数据需要所有进程发送缓冲区中的数
MPI_SCAN(sendbuf, recvbuf, count, datatype, op, comm)
IN sendbuf 发送消息缓冲区的起始地址(可选数据类型)
OUT recvbuf 接收消息缓冲区的起始地址(可选数据类型)
IN count 输入缓冲区中元素的个数(整型)
IN datatype 输入缓冲区中元素的类型(句柄)
IN op 操作(句柄)
IN comm 通信域(句柄)
int MPI_Scan(void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype, MPI_Op
op, MPI_Comm comm)
MPI_SCAN(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, IERROR)