1

プロセスがランダムなメッセージをネイバーに送信し、同時にネイバーからメッセージを受信するネットワークがあります。ソケットとスレッドを使用してそれを行うことができます。1 つのスレッドがメッセージを受信し、別のスレッドがランダムに選択されたネイバーにメッセージを送信します。MPI_SEND と MPI_RECV を使用してこれを達成することは可能ですか?

4

2 に答える 2

1

マルチスレッド環境で MPI 呼び出しを使用できます。MPI_Init_thread関数のマニュアルとこのペーパーを確認してください: http://www.mcs.anl.gov/~thakur/papers/mpi-threads.pdf。MPI-1 標準では実装がスレッドセーフである必要はなく、MPI-2 のみが必要であることに注意してください (ただし、使用する実装はおそらく MPI-2 です)。

于 2013-02-13T17:40:09.603 に答える
0

「同時」の定義は何ですか?

いずれにしても、MPI_Sendrecvに興味があるかもしれません:

送受信操作のセマンティクスは、呼び出し元が 2 つの同時スレッドをフォークし、1 つは送信を実行し、もう 1 つは受信を実行し、その後これら 2 つのスレッドを結合した場合に得られるものです。

于 2013-02-13T18:14:41.987 に答える