Not a good implementation. Will only support 2 nodes (1 compute and 1 replica). Should be more generic.
One way of making it generic it to do one PMPI_Irecv with MPI_ANY_SOURCE and spawn a new thread to PMPI_Wait for this request to complete. Once its complete this thread can check for number of nodes in this job ("n") using status.MPI_SOURCE and rank2job array and do "n - 1" PMPI_Irecv and exit. Rest will be taken care in MPI_Wait implementation.
https://github.com/upperwal/EntangledMPI/blob/11bf509dadf063dc6a37eb234fdb62b0a2e7e859/src/mpi/init.c#L1090-L1097
Not a good implementation. Will only support 2 nodes (1 compute and 1 replica). Should be more generic.
One way of making it generic it to do one
PMPI_Irecv
withMPI_ANY_SOURCE
and spawn a new thread toPMPI_Wait
for this request to complete. Once its complete this thread can check for number of nodes in this job ("n") usingstatus.MPI_SOURCE
andrank2job
array and do "n - 1"PMPI_Irecv
and exit. Rest will be taken care inMPI_Wait
implementation.