the solution depends on the details of your code. Will all clients
send their progress updates simultaneously? Are you planning for few
or many nodes?
For few nodes and non-simultaneous updates you could loop on the root
while receiving from MPI_ANY. Clients could send out their updates via
If you're expecting many nodes, this 1-n schema will eventually
overwhelm the root node. In that case MPI_Gather() or MPI_Reduce()
will perform better. But those require all nodes to participate.
Things get complicated if you want non-simultaneous updates from many