[Mpi3-rma] Draft Plenary Presentation for MPI RMA
Torsten Hoefler
htor at illinois.edu
Fri Feb 4 16:46:42 CST 2011
On Fri, Feb 04, 2011 at 03:40:09PM -0600, James Dinan wrote:
> On 02/04/2011 03:11 PM, Torsten Hoefler wrote:
>> On Fri, Feb 04, 2011 at 02:45:42PM -0600, James Dinan wrote:
>>> Hi Torsten,
>>>
>>> On 02/04/2011 12:35 PM, Torsten Hoefler wrote:
>>>>> Slide 22: UPC doesn't allow sharing data on the stack, only heap data
>>>>> can be shared. In general, this is kind of an iffy thing, might
>>>>> encounter some resistance to suggest doing this. Linux is going to
>>>>> initially map the stack to the zero page which is marked copy-on-write,
>>>>> so beyond the parts you have used, the stack doesn't exist.
>>>>
>>>> That's what registration is for. It has to be created then. Or am I
>>>> missing something?
>>>
>>> UPC doesn't allow shared variables on the stack and I can't think of any
>>> other PGAS model that does. So, the argument of registering and
>>> exposing the stack doesn't seem like it holds water to me.
>> Well, the current proposal allows this. One can register anything that
>> can be dereferenced, including stack variables. If you think that should
>> not be allowed than we need to fix the proposal. The slides simply
>> explain the proposal.
>
> I don't think this should be forbidden. I just think it's a bad idea to
> do it and we should not present it as a motivation for the work. It's
> also not needed by UPC.
Ok, so we agree :).
>>> I believe Dan, et al.'s issue with MPI_Alloc_mem as a requirement is
>>> that *static* shared UPC objects could not be put into windows. Static
>>> distributed shared arrays are one of the most common use cases in UPC.
>>> Adding win_register now allows you to register statically declared
>>> arrays and expose them in a window.
>> This is allowed too.
>
> I would prefer to see static arrays used as the motivating example on
> slide 22 instead of the stack. It's needed by UPC and helpful in
> general to C/Fortran programmers.
I changed it a bit. I still find it convenient to target stack
locations. I'm also often sending stack locations in my codes. I don't
see what's wrong or bad with this. Yes, one needs to pay attention if
the stack is valid.
Torsten
--
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