[Mpi3-rma] Use cases for RMA

Torsten Hoefler htor at illinois.edu
Wed Mar 3 10:48:18 CST 2010


I do see another use-case which is not simple in MPI-2.2: simple nearest
neighbor (stencil) updates. For such operations, it is often beneficial
to start computation at the receiver as soon as the data from the first
neighbor arrived. So what one would probably like to do is:

(1) initiate the communication to all neighbors (nonblocking of course)
(2) check some local completion flag (ideally some kind of counter which
    is mutated after some neighbor placed his data, a single counter
    because we would not like to poll N memory locations for N neighbors)
(3) check which neighbor completed and perform computation on the
    received data
(4) check for completion (leave polling if all neighbors completed)

Step (2) seems tricky with MPI-2.2. One could use passive mode target
and MPI_Accumulate() but (1) there are no ordering guarantees between
puts and accumulates (which is good) so that one would need to open an
exclusive access epoch locally for each poll in order to ensure

There might be easier/better ways to do this, but we should add this to
our use-cases.

All the Best,

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

More information about the mpiwg-rma mailing list