[Mpi3-rma] Target displacement in dynamic windows

Torsten Hoefler htor at illinois.edu
Tue Sep 18 03:02:28 CDT 2012


Hi Jim,                                                                         
> In today's meeting, we arrived at the following approach to addressing        
> the target displacements issue for dynamic windows:                           
>                                                                               
> The MPI 3.0 errata should include the following two statements:               
>                                                                               
> 1. For dynamic windows, the target_disp argument to RMA communication         
> operations is not restricted to non-negative values.                          
>                                                                               
> 2. Users are cautioned that displacement arithmetic can overflow in           
> variables with MPI_Aint type and result in unexpected values on some          
> platforms.  This issue will be addressed in a future version of MPI.          
Sounds good!                                                                    
                                                                                
I think we should add an additional point about                                 
MPIX_ERR_RMA_WRONG_FLAVOR as well.                                              
                                                                                
> In MPI 3.1, we will look at two possible mechanisms for providing safe        
> offset arithmetic:                                                            
>                                                                               
> 1. MPI_Get_pointer(MPI_Aint address, void *ptr), which will allow a user      
> to convert between addresses and pointers.                                    
>                                                                               
> 2. MPI_Auint -- an address integer which can represent the full range of      
> MPI_Aint as a positive integer.  This could be an unsigned integer, but       
> for Fortran compatibiliy, it may need to be a singed integer that's           
> larger than MPI_Aint.  The following conversion functions would be            
> provided:                                                                     
>                                                                               
> MPI_Get_auint(MPI_Aint addr, MPI_Auint *uaddr)                                
> MPI_Get_aint(MPI_Auint uaddr, MPI_Aint *addr)                                 
This certainly needs more discussion!                                           
                                                                                
All the Best,                                                                   
  Torsten                                                                       
                                                                                
-- 
### qreharg rug ebs fv crryF ------------- http://www.unixer.de/ -----
Torsten Hoefler           | Assistant Professor
Dept. of Computer Science | ETH Zürich
Universitätsstrasse 6     | Zurich-8092, Switzerland
CAB E 64.1                | Phone: +41 76 309 79 29



More information about the mpiwg-rma mailing list