MPI recv from an unknown source

前端 未结 2 2064
后悔当初
后悔当初 2021-02-05 04:33

I am implementing in MPI a program in which the main process (with rank=0) should be able to receive requests from the other processes who ask for values of variables that are o

2条回答
  •  情话喂你
    2021-02-05 04:48

    This assumes you are using C. There are similar concepts in C++ and Fortran. You would just specify MPI_ANY_SOURCE as the source in the MPI_recv(). The status struct contains the actual source of the message.

    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);
    

提交回复
热议问题