[Beowulf] MPI programming question: Interleaved MPI_Gatherv?

Rob Ross rross at mcs.anl.gov
Thu Mar 3 11:17:50 PST 2005


Sleep is good :).

Robert G. Brown wrote:
> 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
>>
> 
> 



More information about the Beowulf mailing list