我正在嘗試實現主人計劃。在MPI中使用非阻塞發送和阻塞接收?
我的主人有工人打算做的工作。每次工人完成一項工作,他都會向主人請求一份新工作,並由主人將其發送給他。工人正在計算最小路徑。當一個工人發現一個比他獲得的全球最小值更好的最小值時,他將它發送給每個人,包括主人。
我計劃讓工人和主人用MPI_ISEND
發送數據。另外,我認爲接收應該被阻止。當沒有人要求工作或更新最佳結果時,主人無事可做,所以他應該阻止等待接收。另外,每個工人在完成工作之後都應該等待領取新工具。
儘管如此,我不知道的使用異步非阻塞發送的影響,並阻止同步接收。
另一個我認爲是使用MPI_IPROBE
,但我不確定這會給我任何優化。
請幫我理解我在做什麼是對的。這是正確的解決方案嗎?