DAWNING 乡 曙光 DAWNING 科拔计算未来 Point to point 单个进程对单个进程的通信重要且复杂 术语 - Blocking(阻塞):一个例程须等待操作完成才返回,返回 后用户可以重新使用调用中所占用的资源 -Non- blocking(非阻塞)一个例程不必等待操作完成便可 返回,但这并不意味着所占用的资源可被重用 -Loca(本地):不依赖于其它进程. Non-oca(非本地):依赖于其它进程 2021年1月 MP|并行程序设计 33/217
2021年1月 MPI并行程序设计 33/217 Point to Point • 单个进程对单个进程的通信,重要且复杂 • 术语 – Blocking(阻塞) :一个例程须等待操作完成才返回,返回 后用户可以重新使用调用中所占用的资源. – Non-blocking(非阻塞):一个例程不必等待操作完成便可 返回,但这并不意味着所占用的资源可被重用. – Local(本地):不依赖于其它进程. – Non-local(非本地):依赖于其它进程
DAWNING 乡 曙光 DAWNING 科拔计算未来 Blocking Send int MPl Send(void* buf, int count, MPI Datatype datatype, int dest, int tag, MPI Comm comm) in buf发送缓冲区的起始地址 in count要发送信息的元素个数 in datatype发送信息的数据类型 in dest 目标进程的rank值 in tag 消息标签 in comm通信子 2021年1月 MP|并行程序设计 34/217
2021年1月 MPI并行程序设计 34/217 Blocking Send int MPI_Send(void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm); IN buf 发送缓冲区的起始地址 IN count 要发送信息的元素个数 IN datatype 发送信息的数据类型 IN dest 目标进程的rank值 IN tag 消息标签 IN comm 通信子
DAWNING 乡 曙光 DAWNING 科拔计算未来 Blocking Receive int MPl Recv(void* buf, int count, MPI Datatype datatype, int source, int tag, MPI Comm comm, MPl Status*status); out buf 接收缓冲区的起始地址 n count 要接收信息的元素个数 in datatype接收信息的数据类型 n source源进程的rank值 in tag 消息标签 in comm 通信子 ouT status status对象包含实际接收到的消息的有关信息 2021年1月 MP|并行程序设计 35/217
2021年1月 MPI并行程序设计 35/217 Blocking Receive int MPI_Recv(void* buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status); OUT buf 接收缓冲区的起始地址 IN count 要接收信息的元素个数 IN datatype 接收信息的数据类型 IN source 源进程的rank值 IN tag 消息标签 IN comm 通信子 OUT status status对象,包含实际接收到的消息的有关信息
DAWNING 乡 曙光 DAWNING MP|消息 科拔计算未来 ·MP|消息包括信封和数据两个部分,信封指 出了发送或接收消息的对象及相关信息, 而数据是本消息将要传递的内容 ·数据:<起始地址、数据个数、数据类型> 信封:<源/目的、标识、通信域> 2021年1月 MP|并行程序设计 6/217
2021年1月 MPI并行程序设计 36/217 MPI消息 • MPI消息包括信封和数据两个部分,信封指 出了发送或接收消息的对象及相关信息, 而数据是本消息将要传递的内容 • 数据:<起始地址、数据个数、数据类型> • 信封:<源/目的、标识、通信域>
DAWNING 乡 曙光 DAWNING 消息数据 科拔计算未来 由 count个类型为 datatype的连续数据空间 组成,起始地址为buf 不是以字节数,而是以元素的个数指定消息 的长度 count可以是零,这种情况下消息的数据部 分是空的 ·MP|基本数据类型相应于宿主语言的基本数 据类型 2021年1月 MP|并行程序设计 37217
2021年1月 MPI并行程序设计 37/217 消息数据 • 由count个类型为datatype的连续数据空间 组成, 起始地址为buf • 不是以字节数, 而是以元素的个数指定消息 的长度 • count可以是零, 这种情况下消息的数据部 分是空的 • MPI基本数据类型相应于宿主语言的基本数 据类型