MPI通信操作全解析
1. MPI通信模式概述
MPI为阻塞和非阻塞通信操作提供了不同的通信模式,这些模式决定了发送和相应接收操作之间的协调方式,主要有以下三种模式:
- 标准模式 :此前描述的通信操作均使用标准模式。在此模式下,MPI运行时系统决定传出消息是否在本地系统缓冲区中缓冲。例如,运行时系统可能决定缓冲预定义大小以内的小消息,但不缓冲大消息。对于程序员来说,不能依赖消息缓冲,因此程序编写应确保在不使用缓冲的情况下也能正常工作。
- 同步模式 :在标准模式中,若使用系统缓冲区,即使相应的接收操作尚未开始,发送操作也可完成。而在同步模式下,发送操作只有在相应的接收操作开始且接收进程开始接收发送的数据后才能完成。同步模式下的发送和接收操作会使发送和接收进程之间形成一种同步形式,即同步模式下发送操作的返回表示接收方已开始将消息存储在其本地接收缓冲区中。MPI通过 MPI_Ssend() 函数提供同步模式下的阻塞发送操作,其参数与 MPI_Send() 相同且含义一致;通过 MPI_Issend() 函数提供同步模式下的非阻塞发送操作,其参数与 MPI_Isend() 相同且含义一致。与标准模式下的非阻塞发送操作类似,控制会尽快返回给调用进程,即 MPI_Issend() 和 MPI_Irecv() 之间没有同步。相反,当发送方调用 MPI_Wait() 时,会执行发送方和接收方之间的同步。当为同步模式下的非阻塞发送操作调用
超级会员免费看
订阅专栏 解锁全文
47

被折叠的 条评论
为什么被折叠?



