Parallel processing 在处理器空闲之前再次调用MPI Send

Parallel processing 在处理器空闲之前再次调用MPI Send,parallel-processing,mpi,Parallel Processing,Mpi,假设我有一个从处理器处理由主处理器分配的某个问题。现在,当我再次使用MPI_send向从属处理器发送消息以执行某些工作时,会发生什么情况 我正在尝试这样做: if (masterProcessor) { for (;cond1;) { MPI_Send(...); if (cond2) { MPI_recv(..); // receive from slave }

假设我有一个从处理器处理由主处理器分配的某个问题。现在,当我再次使用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为真之前完成并发送,那么会发生什么?消息会因为没有接收者而丢失吗

如果第一对发送/接收成功,从机将在ans上进行以下发送。在此之后,它将等待目标进程完成互补接收。邮件不会丢失,但发件人必须等待。如果没有人收到,它将永远挂起。

你有什么例子吗?如果无人接收发送,则主机将挂起发送。