2010-05-28 85 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