我正在編寫一個程序來檢查使用MPI
庫的最短路徑。 有兩種情況:
要麼我找到了更好的路徑,如果緩衝區的第一個插槽的狀態爲resultBuff[0] = 1
,我需要檢查緩衝區的其餘內容以獲得更好的路徑。
另一種情況是resultBuff[0] = 0
,我不會在緩衝區的其他單元中刪除任何值。MPI_Recv:接收的尺寸不同於發送的尺寸
是否有可能對我來說,使用單獨的MPI_Isend
電話:
在情況下,我找到了一個更好的路徑,並將其存儲在resultBuff[1]
到resultBuff[10]
:
MPI_Isend((void*)sendBuff, 11, MPI_INT, 0, 1, MPI_COMM_WORLD, &request);
如果沒有找到更好的路徑:
MPI_Isend((void*)sendBuff, 1, MPI_INT, 0, 1, MPI_COMM_WORLD, &request);
而在這兩種情況下,我將使用
MPI_Recv((void*)resultBuff, 11, MPI_INT, MPI_ANY_SOURCE, 1, MPI_COMM_WORLD, &status);
接收結果。
這項工作?
如果是這樣,如果不發送更好的路徑,我會節省通信費用嗎?
注:resultBuff
是尺寸爲11
這並沒有回答這個問題,它只是圍繞它而已。 – Nayish 2011-01-26 11:58:39