[Mpi3-rma] MPI-3.1 RMA planning
Torsten Hoefler
htor at illinois.edu
Thu Jul 26 11:31:30 CDT 2012
On Thu, Jul 26, 2012 at 11:18:54AM -0500, Pavan Balaji wrote:
>
> On 07/26/2012 08:52 AM, Pavan Balaji wrote:
>>> I would like to add some info arguments to the list of things to
>>> consider. I don't have the full list at this point, but we have the
>>> "same_size" argument for create and allocate. However, we have no
>>> "same_displ_unit", which goes by the same rationale. We could also add
>>> some info arguments to dynamic windows to mitigate some of the
>>> implementation issues (allow optimized implementations on RMA systems).
>>
>> Sounds good.
>
> What does "same_size" mean for heterogeneous systems?
The size is in bytes, it's clearly defined in the draft standard.
> If I give 100 * sizeof(int) on both sides, that will not be the same
> size on a heterogeneous system. This might be worth a user advise.
Well, this is a user error.
> A few other things that we noticed:
>
> 1. The standard currently states, "A put or accumulate must not access a
> target window once a load/store update or a put ... ". The term
> "load/store update" doesn't make sense. This has caused a major
> confusion even to the RMA working group, for example on the slide that
> we put together for compatibility between load, store, put, get,
> accumulate, etc. It should really say "load/store accesses" -- that is,
> simultaneous loads and PUTs are not allowed in the SEPARATE model.
Ah, I thought we cleaned all of those things up - one more straggler,
probably a ticket 0 (will not do it now since we're supposed to be
finalized).
> 2. The disp_unit is a weird semantic which is really meant to
> demonstrate what datatype I will be using. We are jumping through hoops
> to get the same_size and same_disp_unit measures which make little sense
> on heterogeneous systems. The correct way to do this would have been to
> not take a disp_unit parameter at all, and instead take a MPI_Datatype
> parameter. In this case, two different processes can give MPI_INT but
> have different type sizes. That adds better safety checks in MPI.
Maybe, but for some reasons, RMA windows are completely specified with
bytes. I am not sure what the reason for this was.
> Unfortunately, all our window creation routines are screwed up in this
> manner. We should consider adding MPI_Win_create_type,
> MPI_Win_allocate_type, MPI_Win_allocate_shared_type in MPI-3.1 and
> deprecating the older routines. It would have been much better to do
> this in 3.0, but it's not a small change.
Ugs, this makes me shiver. I agree in principle, but it's ugly.
Torsten
--
### qreharg rug ebs fv crryF ------------- 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