It sounds like you may like to read about MPI_ANY_SOURCE as the source for MPI_Recv. Using MPI_Probe, with MPI_ANY_SOURCE, may also be a solution.
> 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. > http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_hotmail_acq_broad1_122008_______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users