理解MPI发送差异

时间:2015-07-16 22:21:41

标签: parallel-processing mpi

好的,让我们开始吧,我脑子里有点混乱。

发送:它正在阻止。发送方将等待接收方发布相应的RECV。

SSEND :它正在阻止,发送方不会等待接收方发布相应的RECV,但它会等待RECV的确认。这意味着RECV运行良好。

BSEND :它是非阻止的。该过程可以继续执行其部分代码。数据存储在之前正确分配的缓冲区中。

ISEND :它是非阻止的。该过程可以继续执行其部分代码。数据不存储在缓冲区中:在确定ISEND运行正常(WAIT / TEST)之前,不得覆盖正在发送的数据。

那么...... ISEND和BSEND只对缓冲区有所不同吗?

1 个答案:

答案 0 :(得分:2)

是 - ISEND BSEND 之间的区别是缓冲区。

ISEND 是一种就地执行的非阻止发送。

BSEND 是一种非阻塞发送,可以在MPI_Buffer_Attach指定的内存段中进行缓冲。

创建了 BSEND 函数,以允许程序员准确指定缓冲数据的位置。

请务必注意,与 ISEND 非常相似,您还必须使用 BSEND 缓冲区检查所有发送的状态,以免溢出缓冲区或覆盖待处理的 BSEND