如果我声明一个MPI_Request表(每个CPU有一个请求),当使用MPI_Isend / MPI_Irecv时,它将全局访问? (与初始化MPI环境后无处不在的MPI_comm相比)
感谢。
答案 0 :(得分:3)
我发现这个问题有点令人困惑,也许你可以澄清一下。 MPI_Request
是一种类型;如果在一个进程上声明一个这种类型的值表,那么它只对该进程可用,与声明的任何其他变量一致。
MPI_REQUEST类型的数据通常用作句柄,用于立即发送和接收(ISend
,Irecv
),以允许发送和接收进程测试该消息已收到,使用MPI_Test
或MPI_Wait
/ MPI_Waitall
/ MPI_Waitany
。
MPI_Comm
也是一种类型,但也许你的意思是这种类型的默认通信器本身?这对于所有进程都是已知的,因为MPI_Init
(有效地)创建默认通信器是集体操作。