[Beowulf] MPI programming question: Interleaved MPI_Gatherv?

Rob Ross rross at mcs.anl.gov
Thu Mar 3 12:50:24 PST 2005


Joachim Worringen wrote:

> 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.

It needs to have a negative extent to really test things.  The positive 
extents are easy!

Rob



More information about the Beowulf mailing list