我有许多工作处理器正在计算分配给它们的多个路径的距离。在每个路径的末尾,工作处理器检查计算出的距离是否小于当前的全局最小距离,如果是,则将该距离发送给主服务器以更新全局最小。
只要所有处理器都在运行,这种情况就会一直发生。
我想知道是否有可能实现这样的目标:
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循环条件下应该调用什么函数,或者即使有某些事情可以满足我的需求。如果有人能指出正确的方向,尽管我将不胜感激!