On 1 Sep 2010, at 23:32, Jaison Mulerikkal wrote:

> Hi,
> 
> I am getting interested in this thread.
> 
> I'm looking for some solutions, where I can redirect a task/message 
> (MPI_send) to a particular process (say rank 1), which is in a queue (at rank 
> 1) to another process (say rank 2), if the queue is longer at rank 1. 
> 
> How can I do it?
> 
> First of all, I need to know the queue length at a particular process (rank 
> 1) at a particular instant. how can I use padb to get that info?
> 
> Then on the basis of that info 'send'  some (queued up) messages (from rank 
> 1) to some other process (say rank 2) which are relatively free. Is that 
> possible?


The tools being discussed are for querying the state of message queues within a 
parallel job from outside of that job and are not suitable for the type of 
introspection you are talking about.

It sounds like you are looking for some kind of shared receive queue which 
multiple ranks can pull messages off, I can't think of anything in MPI that 
would allow this kind of functionality short of having a RTS/CTS protocol in 
the application layer.  The easiest might be to had a single rank receive all 
messages and keep them in a queue and then use MPI_Ssend() to forward messages 
to your "consumer" ranks.  Substitute ranks for threads in the above text as 
you feel is appropriate.

Ashley,

-- 

Ashley Pittman, Bath, UK.

Padb - A parallel job inspection tool for cluster computing
http://padb.pittman.org.uk


Reply via email to