MPI_Recv関数に一連のタグを指定することは可能ですか?MPIタグのセット
私のシナリオ:
私は同時にMPI_RECV機能を実行する複数のスレッドを持つアプリケーションで働いています。私はmpiタグを使ってメッセージを受け取るスレッドを制御するつもりです。しかし、メッセージがdata_messageかstop_messageであるかどうかを制御する必要もあります。
したがって、MPI_Recvにタグのセットを定義することは可能ですか? 意味的には、「タグ0または1のメッセージを受信する」、または「タグ10または11を使用してメッセージを受信する」などです。複数の値でなければなりません。
このアプローチを使用すると、stop_messageとしてなthread_id * 2としてdata_messageとなthread_id * 2 + 1タグを使用することも可能です。
'MPI_Testany'と' MPI_Waitany'は非決定論のソースです。前の_data_message_の受信が何らかの形で保証される前にOPが_stop_message_が送信されないことをOPが保証できる場合にのみ機能します。 –
それは良い点です。注文セマンティクスは、異なる受信時に異なる指定されたタグ間で役立たないので、私の提案は実際に一致するメッセージのうちの1つまたは2つにしか依存しません。 – Novelocrat