У меня есть 2 процесса, один процесс передает пакеты другим, пока внутреннее прерывание не прекратит процесс (процесс, который отправляет). Я хочу иметь механизм, который может получить другой процесс, пока не будет получено какое-либо сообщение на этом канале.Как использовать mpi в потоковом приложении реального времени?
Есть ли способ сделать это, кроме передачи команды halt в качестве сообщения? Я предпочитаю не отправлять финиш/прерывание в другое сообщение, потому что могут быть сценарии, которые прерывание может убить процесс отправителя.
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);
}