MPI
ライブラリを使用して最短パスをチェックするプログラムを作成しています。 2つのシナリオがあります:
バッファの最初のスロットにはresultBuff[0] = 1
と表示され、より良いパスを得るためにバッファの残りの部分を調べる必要があります。
もう1つのケースはresultBuff[0] = 0
であり、バッファの他のセルの値はわかりません。場合MPI_Recv:1つのサイズと異なるサイズの受信
MPI_Isend((void*)sendBuff, 11, MPI_INT, 0, 1, MPI_COMM_WORLD, &request);
がより良いパスが見つかりませんでした:
私はより良い道を見つけた場合はし、それを保存しresultBuff[1]
resultBuff[10]
に:私は別のMPI_Isend
コールを使用するため
MPI_Isend((void*)sendBuff, 1, MPI_INT, 0, 1, MPI_COMM_WORLD, &request);
そして、両方のケースで私は
を使用します10MPI_Recv((void*)resultBuff, 11, MPI_INT, MPI_ANY_SOURCE, 1, MPI_COMM_WORLD, &status);
結果を受け取る。
これは機能しますか?
場合は、より良いパスを送信しない場合、私は通信費を節約しますか?
注:メッセージの不足がちょうど同様にその情報を伝えることができます:resultBuff
はサイズ11
それは質問に答えない、それはちょうどそれを回ります。 – Nayish
パス計算が終わった時点を知る必要があります。私は "私は終わった"というメッセージを送る必要があります、それだけで良いパスを見つけたかどうかわかります。 – hizki