[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.


 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