gpt4 book ai didi

c++ - 如何在实时流应用程序上使用 mpi?

转载 作者:行者123 更新时间:2023-11-28 05:36:45 24 4
gpt4 key购买 nike

我有 2 个进程,一个进程将数据包流式传输到另一个进程,直到内部中断停止该进程(发送的进程)。我想要一种机制,在该 channel 上有任何消息被接收之前,其他进程可以接收。

除了将 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);
}

最佳答案

如果 MPI_COMM_WORLD 进程之一终止,则无法正确继续应用程序。发送停止命令并使发送者保持事件状态绝对是您应该做的。

理论上,您可以在 MPI 中使用单向通信或超时机制(使用 irecv/request::cancel),但我看不到任何方式这是有道理的..

关于c++ - 如何在实时流应用程序上使用 mpi?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38110467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com