I liked your text, which does not use an platform-oriented terms e.g. virtual memory language.

Jeff

On Tue, Jan 2, 2018 at 1:59 PM, William Gropp <wgropp@illinois.edu> wrote:
I see no harm in adding a clarification - not an errata, and not a change. Is my text sufficiently precise, or is there better text that we could use?

Bill

William Gropp
Director and Chief Scientist, NCSA
Thomas M. Siebel Chair in Computer Science
University of Illinois Urbana-Champaign






On Jan 2, 2018, at 3:54 PM, Jeff Hammond <jeff.science@gmail.com> wrote:

I agree with all of these comments, but a user is arguing that these requirements are not clear from the text, e.g. because the meaning of existence in "existing memory" is not defined.  It seems that what is obvious to us is not obvious to users.

Jeff


On Tue, Jan 2, 2018 at 12:54 PM, William Gropp <wgropp@illinois.edu> wrote:
Yes.  The r and l values must remain valid until the free.

Bill

William Gropp
Director and Chief Scientist, NCSA
Thomas M. Siebel Chair in Computer Science
University of Illinois Urbana-Champaign






On Jan 2, 2018, at 2:52 PM, Nathan Hjelm <hjelmn@mac.com> wrote:

I would expect that the intent is also that the memory should not be freed/unmapped before the matching call to MPI_Win_free() correct?

-Nathan

On Jan 02, 2018, at 01:19 PM, William Gropp <wgropp@illinois.edu> wrote:

It was certainly the intent that the memory be allocated.  Specifically, if a is the pointer and the region is of length L, then (assuming char *a and ) a[0] … a[L-1] must be valid r and l values at the point of the call.

Bill

William Gropp
Director and Chief Scientist, NCSA
Thomas M. Siebel Chair in Computer Science
University of Illinois Urbana-Champaign

On Jan 2, 2018, at 1:52 PM, Jeff Hammond <jeff.science@gmail.com> wrote:
If a user passes a (base,size) pair that corresponds to a range of addresses that are not allocated and/or mapped, is that a correct MPI program?

The only text I can find that implies that buffers passed to MPI_Win_create have to be allocated is the following, assuming that one interprets "existing memory" this way.  

"Each process specifies a window of existing memory that it exposes to RMA accesses by the processes in the group of comm." (MPI 3.1 11.2.1)

The Fortran-specific text is similarly suggestive, but it only says that a user can pass a simply contiguous array, not that such a thing is required.

"In Fortran, one can pass the first element of a memory region or a whole array, which must be ‘simply contiguous’"

Thanks,

Jeff

--
Jeff Hammond
jeff.science@gmail.com
http://jeffhammond.github.io/
_______________________________________________
mpiwg-rma mailing list
mpiwg-rma@lists.mpi-forum.org
https://lists.mpi-forum.org/mailman/listinfo/mpiwg-rma

_______________________________________________
mpiwg-rma mailing list
mpiwg-rma@lists.mpi-forum.org
https://lists.mpi-forum.org/mailman/listinfo/mpiwg-rma
_______________________________________________
mpiwg-rma mailing list
mpiwg-rma@lists.mpi-forum.org
https://lists.mpi-forum.org/mailman/listinfo/mpiwg-rma


_______________________________________________
mpiwg-rma mailing list
mpiwg-rma@lists.mpi-forum.org
https://lists.mpi-forum.org/mailman/listinfo/mpiwg-rma



--
_______________________________________________
mpiwg-rma mailing list
mpiwg-rma@lists.mpi-forum.org
https://lists.mpi-forum.org/mailman/listinfo/mpiwg-rma


_______________________________________________
mpiwg-rma mailing list
mpiwg-rma@lists.mpi-forum.org
https://lists.mpi-forum.org/mailman/listinfo/mpiwg-rma



--