阻塞通信:消息发送方的send需要接收方的recv配合才能完成。MPI对阻塞通信一些底层函数进行了一些封装,方便我们调用。
1.标准通信模式:
MPI_Send(buf, buf_size, MPI_CHAR, process1, tag, MPI_COMM_WORLD);
MPI_Recv(buf, buf_size, MPI_CHAR, process0, tag, MPI_COMM_WORLD);
上面两个函数一个用来发送,一个用来接收。分别运行在两个进程(process0和process1)
(1).发送和接收在双方进程同时启动(理想状态,且在单核CPU时是不可能的):
数据传输操作立即启动
(2).发送动作早于接收动作启动:
发送进程阻塞,等待接受进程执行到MPI_Recv语句,之后开启传输(传输过程中其实是发送进程将数据传到 MPI环境缓存中,接受进程那边进行读取)
(3).发送动作晚于接受动作启动ÿ