私は2つのプロセスを持っています.1つのプロセスは、内部割り込みがプロセス(送信するプロセス)を停止するまで、パケットを別のプロセスにストリーミングしています。このチャネルに受信するメッセージがあるまで、他のプロセスが受信できるメカニズムが必要です。
停止コマンドをメッセージとして転送する以外にそれを行う方法はありますか? 割り込みが送信側プロセスを強制終了する可能性があるため、別のメッセージとして終了/割り込みを送信しないことを好みます。
if (world.rank() != 0) {
while (!interrupt())
world.send(ROOT, ID, a, bufferSize);
// I prefer not to send finish/interrupt as another message
}
else {
while (/*there is any packet to be received*/)
world.recv(boost::mpi::any_source, ID, a, bufferSize);
}