an other option is to use MPI_THREAD_MULTIPLE, and MPI_Recv() on the master task in a dedicated thread, and use a unique tag (or MPI_Comm_dup() MPI_COMM_WORLD) to separate the traffic.
If this is not the desired design, then the master task has to post MPI_Irecv() and "poll" with MPI_Probe() / MPI_Test() and friends. Note it is possible to use non blocking collective (MPI_Ibcast(), MPI_Iscatter() and MPI_Igather()) and "both" collective and the progress statuses Cheers, Gilles On Sunday, April 24, 2016, dpchoudh . <dpcho...@gmail.com> wrote: > Hello > > > I am not sure I am understanding your requirements correctly, but base on > what I think it is, how about this: you do an MPI_Send() from all the > non-root nodes to the root node and pack all the progress related data into > this send. Use a special tag for this message to make it stand out from > 'regular' sends. The root node does a non-blocking receive on this tag from > all the nodes that it is expecting this message from. > > Would that work? > > Durga > > > 1% of the executables have 99% of CPU privilege! > Userspace code! Unite!! Occupy the kernel!!! > > On Sun, Apr 24, 2016 at 7:05 AM, MM <finjulh...@gmail.com > <javascript:_e(%7B%7D,'cvml','finjulh...@gmail.com');>> wrote: > >> Hello, >> >> With a miniature case of 3 linux quadcore boxes, linked via 1Gbit >> Ethernet, I have a UI that runs on 1 of the 3 boxes, and that is the root >> of the communicator. >> I have a 1-second-running function on up to 10 parameters, my parameter >> space fits in the memory of the root, the space of it is N ~~ 1 million. >> >> I use broadcast/scatter/gather to collect the value of my function on >> each of the 1million points, dividing 1million by the number of nodes (11: >> rootnode has 1 core/thread assigned to the UI, 1 core/thread for its >> evaluation of the function on its own part of the parameter space and 2 >> other cores run non-root nodes, and the 2 other boxes all run non-root >> nodes) >> >> the rootnode does: >> 1. broadcast needed data >> 2. scatter param space >> 3. evaluate function locally >> 4. gather results from this and all other nodes >> >> How would I go about having the non-root nodes send a sort of progress >> status to the root node? that's used for plotting results on the root box >> as soon as they are available? >> >> Rds, >> >> >> >> >> >> _______________________________________________ >> users mailing list >> us...@open-mpi.org <javascript:_e(%7B%7D,'cvml','us...@open-mpi.org');> >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users >> Link to this post: >> http://www.open-mpi.org/community/lists/users/2016/04/29013.php >> > >