C の MPI では、マスター プロセス ID 0 で N 個のプロセッサからすべてのデータを受信した場合にのみ関数を実行するにはどうすればよいですか?
編集:送信されたのと同じ順序ですべてのデータも受信する方法はありますか?
あなたの質問が正しく理解できれば、 MPI_Reduceが必要です。
編集:あなたの質問を正しく受け取れませんでした。必要なのはMPI_Gatherです。そして、このドキュメントでは次のことがわかりEach process (root process included) sends the contents of its send buffer to the root process. The root process receives the messages and stores them in rank order.
ます。
MPI_Gather関数を見てみましょう。呼び出しの後、次の方法で条件付き実行を確認できます。
if (ierr == MPI_SUCCESS) {
// Execute a function
}