[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