ソースのリストをMPI_Recv(または同等の)呼び出しに渡すことは可能ですか?現在、私のコードは次のようになっています。
do i=nod1,nod2
call mpi_recv(tmp,n,MPI_REAL,MPI_ANY_SOURCE,tag,MPI_COMM_WORLD,status,ierr)
... do stuff with tmp here
call mpi_send(tmp,n,MPI_REAL,status(MPI_SOURCE),tag,MPI_COMM_WORLD,ierr)
enddo
もちろん、これは私が望むことをすることを保証するものではありません。(nod2が1つのメッセージを送信する前に、nod1がここで2つのメッセージを送信した場合、この反復中にnod2のメッセージは受信されません。これは悪いことです。)私のアプリケーションでは、nod1とnod2に他の制約があるため、これは発生しません。互いに(十分に)同期されている...しかし、受信が許可されているプロシージャのリストを指定する方法があるかどうか疑問に思いました。