[Mpi3-rma] Next RMA Telecon

Torsten Hoefler htor at illinois.edu
Mon Dec 26 22:31:40 CST 2011

On Mon, Dec 26, 2011 at 09:00:59PM -0600, Pavan Balaji wrote:
> On 12/26/2011 08:48 PM, Torsten Hoefler wrote:
>> Why does:
>> win_fence()
>> if(rank == 0) { initialize_window(); MPI_Barrier(); }
>> else MPI_Barrier();
>> win_fence()
>> // all procs read written data here
>> not work for Ron's use-case? Are you talking about another use-case?
> I see.  I thought you were referring to using point-to-point/collectives  
> alone without any RMA calls.
> Also, the case I had in mind was using lock/unlock.  If it is valid for  
> the user to do a for loop of Win_lock(exclusive), I'm not sure how we  
> are taking away the MPI implementation burden by not allowing  
> Win_lock_all(exclusive).
A for loop is a silly user program, having a slow P^2 lock_all
exclusive (in the extreme case) is a problem in the MPI lib.

> More importantly -- even if we want to not allow exclusive locks in  
> WIN_LOCK_ALL, I would suggest retaining the lock_type parameter and say  
> that the behavior of EXCLUSIVE locks is undefined, so that it's future  
> proof in case we want to add it later.  Also, implementations that want  
> to provide it can do so without random hacks or new API functions.
Yes, I thought about this, however, our original #270 didn't have this
feature and I decided to revert to the original. We can do a straw vote
here and fix it quickly. I have no strong opinion.

> Btw, I assume the following would be valid?
> Win_allocate_shared(shared_mem, &shared_win);
> Win_create(shared_mem, &remote_win);  /* overlapping window */
> P0:
> Win_lock_all(SHARED, &shared_win);
> Recv(P1);
> Barrier();
> Barrier();
> Win_lock(EXCLUSIVE, P0, remote_win);
> Put(P0, remote_win);
> Win_unlock(P0);
> Send(P0);
> The idea is that a process gets a lock on a shared memory region and  
> uses it for remote RMA communication.
Yes, that should work but the semantics of overlapping windows are

All the Best,

 bash$ :(){ :|:&};: --------------------- http://www.unixer.de/ -----
Torsten Hoefler         | Performance Modeling and Simulation Lead
Blue Waters Directorate | University of Illinois (UIUC)
1205 W Clark Street     | Urbana, IL, 61801
NCSA Building           | +01 (217) 244-7736

More information about the mpiwg-rma mailing list