主处理器是否可以等待从处理器完成?

时间:2019-05-11 09:31:00

标签: c mpi

我有许多工作处理器正在计算分配给它们的多个路径的距离。在每个路径的末尾,工作处理器检查计算出的距离是否小于当前的全局最小距离,如果是,则将该距离发送给主服务器以更新全局最小。

只要所有处理器都在运行,这种情况就会一直发生。

我想知道是否有可能实现这样的目标:

int temp;
MPI_Status stat;
int globalMin = INT_MAX;

while(/* there are workers still running */){
     for(int i = 1; i < numProcessor; i++){
         MPI_Recv(&temp, 1, MPI_INT, i, 0, MPI_COMM_WORLD, &stat);
         if(temp < globalMin){ 
            globalMin = temp;
         }
     }
}

很抱歉,如果语法有误,我对MPI还是很陌生。 我不确定在while循环条件下应该调用什么函数,或者即使有某些事情可以满足我的需求。如果有人能指出正确的方向,尽管我将不胜感激!

0 个答案:

没有答案