Parallel processing 在处理器空闲之前再次调用MPI Send
假设我有一个从处理器处理由主处理器分配的某个问题。现在,当我再次使用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 }
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上进行以下发送。在此之后,它将等待目标进程完成互补接收。邮件不会丢失,但发件人必须等待。如果没有人收到,它将永远挂起。你有什么例子吗?如果无人接收发送,则主机将挂起发送。