我想向某些进程发送请求,看看是否有任何进程返回任何内容。如果它们都没有返回任何内容,则该进程应返回-1。我以为我可以使用github.com/pydata/pandas/issues/3686来做到这一点。问题是任何解决方案都要求我(必须?)等待并检查它们中的任何一个是否确实返回。但这不是我想要的。我想发送一些请求,然后等待(最多1秒),如果有什么东西被罚款,如果没有,那么进程应该返回-1。我已经写了一半的方法,如果有人可以帮助完成它的话会很棒。
int findJob(MPI_Comm world, int size, int rank, int target, MPI_Status *status){
int counter = 0;
int req = -1;
MPI_Status status;
while(counter < size){
if(target == rank)
continue;
printf("Process %d sending job request to process %d\n",rank,target);
MPI_Send(&rq, 1, MPI_INT, target,0,world);
printf("Process %d listening for response from %d\n",rank,target);
MPI_Irecv(&req, 1, MPI_INT,target,MPI_ANY_TAG,world,&status)
}
return req;
}