2010-05-28 49 views

回答

3

我觉得这个问题有点混乱,也许你可以澄清。 MPI_Request是一种类型;如果您在一个进程中声明了此类型的值的表,那么它仅对该进程可用,与任何其他已声明的变量一致。通常用作类型MPI_REQUEST的

数据处理立即发送和接收(ISendIrecv),以允许发送和接收过程以测试该消息已被接收,使用MPI_TestMPI_Wait/MPI_Waitall/MPI_Waitany

MPI_Comm也是一种类型,但也许你的意思是这种类型的默认沟通者本身?这是所有进程都知道的,因为MPI_Init(有效地)创建默认通信器是一个集体操作。

+0

谢谢你的回答,我问这个问题,因为MPI_Isend和MPI_Irecv把MPI_Request类型作为参数。假设每个CPU都在其世界中并且MPI_Request类型不共享,他们如何知道请求与特定的MPI_Isend和MPI_Irecv匹配? – Debugger 2010-05-28 19:21:52

+0

匹配由“source”和“tag”参数的值完成,就像阻塞发送/接收一样。如果进程'i'发送一个带有目标'j'和标签'n'的发送,那么进程'j'将接收到IFF它发送一个带有源'i'和标签'n'(或'MPI_ANY_TAG')的接收。 MPI实现负责在消息传递后更新两个进程中'MPI_Request'对象的状态。 – suszterpatt 2010-05-28 22:42:15