[Mpi3-rma] Dynamic windows example

James Dinan dinan at mcs.anl.gov
Sun Dec 5 22:57:06 CST 2010


On 12/05/2010 10:29 PM, Pavan Balaji wrote:
> 
> On 12/05/2010 10:19 PM, James Dinan wrote:
>>> Using MPI_BYTE in the broadcast is also not working in heterogeneous
>>> environments (where you should also compare the sizes of MPI_Aint).
>>
>> Will dynamic windows be usable on such systems if processes don't agree
>> on the size of MPI_Aint?
> 
> Yes. What part of the current draft is not heterogeneous-safe?

The displacement into a dynamic window where a newly registered buffer
will be accessed is the address of the buffer cast to an MPI_Aint.  If
processes don't agree on the size of an address then it seems like it
will be challenging to handle dynamic window displacements in a
heterogeneous-safe way.  Even if the MPI implementation handles this by
making the size of MPI_Aint large enough to accommodate all processes,
the address arithmetic I used to get the next field from an item pointer
will not be valid (consider a 32 bit process casting 64 bit MPI_Aint to
llist_item_t*):

(MPI_Aint) &(((llist_item_t*)tail_ptr.disp)->next)

So, it seems like for the above to be heterogeneous-safe I should be
using MPI types.

 ~Jim.



More information about the mpiwg-rma mailing list