[Beowulf] MPI programming question: Interleaved MPI_Gatherv?

Robert G. Brown rgb at phy.duke.edu
Thu Mar 3 10:40:07 PST 2005


On Thu, 3 Mar 2005, Rob Ross wrote:

OK, having re-reread everything, I conclude that you were completely
right after all.  I misunderstood what his question was. I'm still not
certain that I understand, but if Bill has answered it it definitely
isn't what I though.

So double-whomp.  I'll go sleep now.

   rgb

> 
> 
> William Gropp wrote:
> > At 12:44 AM 3/1/2005, Michael Gauckler wrote:
> > 
> >> Dear List,
> >>
> >> I would like to gather the data from several processes.
> >> Instead of the comonly used stride, I want to interleave
> >> the data:
> >>
> >> Rank 0: AAAAA -> ABCDABCDABCDABCDABCD
> >> Rank 1: BBBBB ----^---^---^---^---^
> >> Rank 2: CCCCC -----^---^---^---^---^
> >> Rank 3: DDDDD ------^---^---^---^---^
> >>
> >> Since the stride of the receive type is indicated
> >> in multpiles of its mpi_type, no interleaving is
> >> possible (the smallest striping factor leads to
> >> AAAAABBBBBBCCCCCDDDDD).
> >>
> >> Is there a way to achieve this behaviour in an
> >> elegant way, as MPI_Gather promises it? Or do
> >> I need to do Send/Recv with self-aligned offsets?
> > 
> > 
> > You should be able to do this with MPI_Gather by creating a new datatype 
> > on the receiving process whose extent is the size of a single item; that 
> > will get you the correct offset for the first element.  In order to 
> > receive the subsequent elements into the desired location, you need to 
> > use a vector type containing the number of elements.  And for this to be 
> > fast, you need an MPI implementation that will handle the "resized" 
> > datatype efficiently (use MPI_Type_vector to create the full datatype 
> > and MPI_Type_create_resized to change its effective extent).  If you are 
> > moving large amounts of data, separate send/recvs are probably a better 
> > choice.
> > 
> > Bill
> 
> Nice!
> 
> Rob
> _______________________________________________
> Beowulf mailing list, Beowulf at beowulf.org
> To change your subscription (digest mode or unsubscribe) visit http://www.beowulf.org/mailman/listinfo/beowulf
> 

-- 
Robert G. Brown	                       http://www.phy.duke.edu/~rgb/
Duke University Dept. of Physics, Box 90305
Durham, N.C. 27708-0305
Phone: 1-919-660-2567  Fax: 919-660-2525     email:rgb at phy.duke.edu





More information about the Beowulf mailing list