Join GitHub today
Working with Shared Memory #481
Originally by gropp on 2015-06-25 08:52:55 -0500
MPI 3.0 introduced a way to gain access to shared memory from within MPI. However, the tricky and subtle issues consistent access to that shared memory, using load and store operations (as opposed to MPI RMA operations) was not carefully considered or described, leading to many debates in the Forum, as well as several attempts to clarify the issues (see #429, #435, and #437 and also #475). This ticket is a place holder to collect suggestions for clarifying and improving the discussion of shared memory access.
Note that correct access to shared memory requires great care in working with the underlying programming language (C, C++, or Fortran), since in all cases, the language does not cover processes sharing memory (The 2011 versions of C and C++ have some support for threads sharing memory, and this provides some basis for discussing sharing of memory within these languages).
At the June 2015 Forum meeting, the RMA working group endorsed the idea of creating this new ticket, retiring the ones mentioned above, and considering this issue in the context of the entire RMA chapter. Providing separate text for the shared memory case, rather than attempting to write the RMA synchronization in such a way as to cover both MPI RMA calls (such as MPI_Put) and load/store access from the underlying language, was considered the best approach to consider.
Possible updates include (these are exclusive: pick one):