假设我有一个从处理器处理由master分配的某个问题。现在,当我再次向使用MPI_Send的某些工作向该从属处理器发送消息时会发生什么?
我正在尝试做这样的事情:
if (masterProcessor) {
for (;cond1;) {
MPI_Send(...);
if (cond2) {
MPI_recv(..); // receive from slave
}
}
} else {
MPI_Recv(...); // rec from master
MPI_Send(...); // send to master
}
我想知道的是,如果奴隶在master中的cond2为真之前完成并发送,那么会发生什么?由于没有接收器,消息会丢失吗?
答案 0 :(得分:0)
如果第一对发送/接收成功,则从设备将继续执行以下发送。之后,它将等待目标进程执行补充接收。邮件不会丢失,但发件人必须等待。如果没有人收到,它将永远挂起。