私はプロセス間に「仮想ボール」をバウンスするプログラムを書いています。ルートプロセス、すなわちランク0のタスクは、ゲームを初期化し、rand() % size
(初期ランクによってシードされた乱数が生成される)によって決定されるランダムプロセスにそれを送る。私がやってみたことMPIのさまざまなプロセスと送受信する
:これは、次のランダムプロセスではなく、このコードを実行している時にボールを送り、
int rnk= rand() % size; MPI_Send(&ball,1, MPI_INT, rnk, MPI_COMM_WORLD);
を遮断するMPI_Send関数によって、最大保持されています。私はちょうど並列プログラミングを始めたので、私はこれを十分に把握していません。ランダムなプロセスにどのように送信すれば、さらにランダムなプロセスに送信するのですか?
指針、ヒント、本、チュートリアルは歓迎します。
あなたが試したことの[mcve]を入力してください。 – Zulan
を参照してください。http://stackoverflow.com/questions/4348900/mpi-recv-from-an-unknown-source – francis
問題は、MPIプロセスの1つが競合状態のためにハングしていたことでした。私はそれを解決し、プログラムは期待どおりに実行されました。 –