中国料学火计算机科学与波术系 niversity of Science and Technology of China D三P去RT三TFC口PTER三巴 NCE AND了N。LDr 2消息传递方式 1. 2 Message-Passing modes 关于通信模式,用户需要理解的有三个方面: 共有多少个进程? >进程间如何同步? >如何管理通信缓冲区? 现在的消息传递系统多使用三种通信模式: >同步的消息传递 Synchronous message Passing) >阻塞的消息传递( Blocking message Passing) >非阻塞的消息传递( Nonblocking Message Passing) 国家高性能计算中心(合肥
国家高性能计算中心(合肥) 1.2 Message-Passing Modes 关于通信模式, 用户需要理解的有三个方面: ➢ 共有多少个进程? ➢ 进程间如何同步? ➢ 如何管理通信缓冲区? 现在的消息传递系统多使用三种通信模式: ➢ 同步的消息传递(Synchronous Message Passing) ➢ 阻塞的消息传递(Blocking Message Passing) ➢ 非阻塞的消息传递(Nonblocking Message Passing) 2 消息传递方式
中国料学火计算机科学与波术系 niversity of Science and Technolo ogy of China D三AFT三 NT OF C口 MPUTER SCIENGE AND TECHNOLOr 2消息传递方式 等待发送点开始发送点发送返回点 进程P r blocker non block 系统进程 进程Q 开始接收点接收返回点 发送例程 接收例程 国家高性能计算中心(合肥
国家高性能计算中心(合肥) 发送例程 接收例程 进程 Q 开始接收点 接收返回点 R_syn1 S_Non_Block3 S_Block2 进程 P 开始发送点 发送返回点 S_syn1 R_block2 R_Non_Block3 系统进程 等待发送点 2 消息传递方式
中国料学火计算机科学与波术系 niversity of Science and Technology of China D三P去RT三TFC口PTER三巴 NCE AND了N。LDr 2消息传递方式 例2.1消息传递中的发送和接收缓冲 Process P Process Q 10: L1:S=-100: 1: send M to Q 2: receive S from P 2:M=20; X=S+1; goto L1 M称为发送消息缓冲( send message buffer, or send buffer) S称为接收消息缓冲( receive message buffer,. or receive buffer 国家高性能计算中心(合肥
国家高性能计算中心(合肥) Process P: M=10; L1: send M to Q; L2: M=20; goto L1; Process Q: L1: S= -100; L2: receive S from P; X=S+1; 例2.1 消息传递中的发送和接收缓冲 M 称为发送消息缓冲(send message buffer, or send buffer) S 称为接收消息缓冲(receive message buffer, or receive buffer) 2 消息传递方式
中国料学火计算机科学与波术系 仨种通信模式的较 niversity of Science and Technology of China D三P去RT三TFC口PTER三巴 NCE AND了N。LDr 2消息传递方式 通信事件 同步通信 阻塞的通信 非阻塞的通信 发送开始的条件双方都到达了发送和接收点发送方到达发送点发送方到达发送点 发送返回意味着消息已被收到消思己被发送完通知完系统某个消息要被发送 接收开始的条件双方都到达了发送和接收点接收方到达发送点接收方到达发送点 接收返回意味着消息已被收到 消息已被收到 通知完系统某个消息要被接收 语义 「明确」 二者之间 需做错误探测 是否需要系统提供不需要 需要 需要 临时的消息缓冲区 状态检查 不需要 不需要 需要 等待的时间开销最高 者之间 最低 通信与计算、通信与不重迭 重迭 重迭 通信的重迭 11 11 l1,21,-99 国家高性能计算中心(合肥
国家高性能计算中心(合肥) 三种通信模式的比较 通信事件 同步通信 阻塞的通信 非阻塞的通信 发送开始的条件 双方都到达了发送和接收点 发送方到达发送点 发送方到达发送点 发送返回意味着 消息已被收到 消息已被发送完 通知完系统某个消息要被发送 接收开始的条件 双方都到达了发送和接收点 接收方到达发送点 接收方到达发送点 接收返回意味着 消息已被收到 消息已被收到 通知完系统某个消息要被接收 语义 明确 二者之间 需做错误探测 是否需要系统提供 临时的消息缓冲区 不需要 需要 需要 状态检查 不需要 不需要 需要 等待的时间开销 最高 二者之间 最低 通信与计算、通信与 通信的重迭 不重迭 重迭 重迭 X 11 11 11, 21, -99 2 消息传递方式
中国料学火计算机科学与波术系 niversity of Science and Technology of China D三P去RT三TFC口PTER三巴 NCE AND了N。LDr 2消息传递方式 例2.2非阻塞模式下,强制进程等待直到安全时再继续执行 Process P. Process Q M=10; S=-100 send M to Q receive S from P do some computation which do some computation which does not change M; does not use S wait for M to be sent wait for S to be received M=20 X=S+1; 非阻塞模式本身也会带来一些额外开销: 作为临时缓冲区用的内存空间 分配缓冲区的操作 将消息拷入和拷出临时缓冲区 热行个额外的检测和等待函数 国家高性能计算
国家高性能计算中心(合肥) Process P: M=10; send M to Q; do some computation which does not change M; wait for M to be sent; M=20; Process Q: S=-100; receive S from P; do some computation which does not use S; wait for S to be received; X=S+1; 例2.2 非阻塞模式下, 强制进程等待直到安全时再继续执行 非阻塞模式本身也会带来一些额外开销: • 作为临时缓冲区用的内存空间 • 分配缓冲区的操作 • 将消息拷入和拷出临时缓冲区 • 执行一个额外的检测和等待函数 2 消息传递方式