[Beowulf] MPI programming question: Interleaved MPI_Gatherv?

Joachim Worringen joachim at ccrl-nece.de
Thu Mar 3 08:47:23 PST 2005


William Gropp wrote:
> 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.

Oh yes, I forgot, twiddling with LB and UB. I never liked this, esp. as 
an MPI implementor. Not especially 'elegant', but it should work. Good 
conformance test, BTW.

  Joachim

-- 
Joachim Worringen - NEC C&C research lab St.Augustin
fon +49-2241-9252.20 - fax .99 - http://www.ccrl-nece.de



More information about the Beowulf mailing list