在处理器空闲之前调用MPI Send Again

时间:2015-03-03 23:03:46

标签: parallel-processing mpi

假设我有一个从处理器处理由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为真之前完成并发送,那么会发生什么?由于没有接收器,消息会丢失吗?

1 个答案:

答案 0 :(得分:0)

如果第一对发送/接收成功,则从设备将继续执行以下发送。之后,它将等待目标进程执行补充接收。邮件不会丢失,但发件人必须等待。如果没有人收到,它将永远挂起。