Это предполагает, что вы используете C. Есть схожие концепции в C ++ и Fortran.Вы бы просто указали MPI_ANY_SOURCE
как источник в MPI_recv()
.Структура состояния содержит фактический источник сообщения.
int buf[32];
MPI_Status status;
// receive message from any source
MPI_recv(buf, 32, MPI_INT, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status);
int replybuf[];
// send reply back to sender of the message received above
MPI_send(buf, 32, MPI_INT, status.MPI_SOURCE, tag, MPI_COMM_WORLD);