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

Reply via email to