MPI_Recv
ノードからデータを受信する
呼び出し手順
value = MPI_Recv(rank, tag) value = MPI_Recv(rank, tag, comm=mpi_comm)
引数
- rank
ランク. TODO
- tag
タグ. TODO
- comm=mpi_comm
If the optional argument "comm" is given, this function will use the MPI communicator created by MPI_Create_comm. If not, the default MPI_COMM_WORLD is used.
- res
MPI_Sendから取得した値.
説明
指定したノードから値を取得します. その値は,通常,関数 MPI_Sendから送信されます.
技術的実装
Scilab/MPIの実装に関する詳細については, 実装に関する技術的詳細を 参照ください.
例
MPI_Init(); rnk = MPI_Comm_rank(); sizeNodes = MPI_Comm_size(); SLV = rnk; // 便利なショートカット, マスターはランク 0 Master = ~ SLV; // その他は全てスレーブ tag = 0; if Master // マスターノード for slaveId = 1:sizeNodes-1 // Send data to the slaves value = rand(100,100) + rand(100,100) * %i; MPI_Send(value, slaveId); end for slaveId = 1:sizeNodes-1 valueBack = MPI_Recv(slaveId, tag); // スレーブが期待するものを送信したか確認 assert_checkequal(valueBack,value + 1); end else // スレーブ rankSource = 0; // マスターから情報を受信 value = MPI_Recv(rankSource); // 値を1つ増加 value = value + 1; // マスターに戻す MPI_Send(value, 0); end MPI_Finalize();
参照
- MPI_Send — ノード間データ送信
Report an issue | ||
<< MPI_Isend | Scilab MPI | MPI_Send >> |