I have a MPI program like this:
void slave1(int j){
MPI_Status status;
MPI_Recv(&j,1,MPI_INT,0,0,MPI_COMM_WORLD,&status);}
void slave2(int j){
MPI_Status status;
MPI_Recv(&j,1,MPI_INT,0,1,MPI_COMM_WORLD,&status);}
int main(int argc, char *argv[]){
int numprocs, rank;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
if (rank >0){
for (int t=2;t<runtime;t++){
slave1(rank);
MPI_Barrier(MPI_COMM_WORLD);
slave2(rank);
MPI_Barrier(MPI_COMM_WORLD);
}
}
if (rank==0){
for(int i=1;i<numprocs;i++){MPI_Send(&i,1,MPI_INT,i,0,MPI_COMM_WORLD);}
MPI_Barrier(MPI_COMM_WORLD);
for(int i=1;i<numprocs;i++){MPI_Send(&i,1,MPI_INT,i,1,MPI_COMM_WORLD);}
MPI_Barrier(MPI_COMM_WORLD);
}
MPI_Finalize();}
This work for runtime loop less than 166 times, but after that, I got the error showing:
Fatal error in MPI_Recv: Other MPI error