HI,

I need to transfer data from multiple sources to one destination.
The requirement is:

(1) The sources and destination nodes may work asynchronously.
 
(2) Each source node generates data package in their own paces.
    And, there may be many packages to send. Whenever, a data package
    is generated , it should be sent to the desination node at once.
    And then, the source node continue to work on generating the next
    package.

(3) There is only one destination node , which must receive all data
    package generated from the source nodes.
    Because the source and destination nodes may work asynchronously,
    the destination node should not wait for a specific source node until
    the source node sends out its data.

    The destination node should be able to receive data package
    from anyone source node whenever the data package is available in a
    source node.

My question is :

What MPI function should be used to implement the protocol above ?

If I use MPI_Send/Recv, they are blocking function. The destination
node have to wait for one node until its data is available.

The communication overhead is too high.

If I use MPI_Bsend, the destination node has to use MPI_Recv to ,
a Blocking receive for a message .

This can make the destination node wait for only one source node and
actually other source nodes may have data avaiable.


Any help or comment is appreciated !!!

thanks

Dec. 28 2008



It’s the same Hotmail®. If by “same” you mean up to 70% faster. Get your account now.