我是MPI的新手,很抱歉,如果這聽起來很愚蠢。我想要一個進程有一個MPI_Irecv
。如果它已被調用任務,那麼它會找到一個結果並將結果發送回調用它的進程。我怎樣才能檢查它是否已經被分配到一個任務?所以我可以有一個if{}
其中的任務發生,而其餘的過程繼續其他的東西。MPI irecv,isndnd任務之間的通信
代碼示例:
for (i=0;i<size_of_Q;i++) {
MPI_Irecv(&shmeio, 1, mpi_point_C, root, 77, MPI_COMM_WORLD, &req);
//I want to put an if right here.
//If it's true process does task.
//Finds a number. then
MPI_Isend(&Bestcandidate, 1, mpi_point_C, root, 66, MPI_COMM_WORLD, &req);
//so that it can return the result.
//if it wasn't assigned a task it carries on with its other tasks.
} //(here is where for loop ends)
什麼是你的任務?它是如何發現它已被分配的?爲什麼你需要非阻塞?你的'MPI_Wait()'在哪裏? –
它是如何發現它已被分配它實際上是我的問題。我是MPI新手,所以我不知道如何使用MPI_Wait() –