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

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



