The same can be said for some HPF "hints" with some HPF compilers. The problem
is not that this is not a hint, it is that the available tools cannot determine
whether the hint has been issued under the proper restrictions.
Having said that, however, I still believe that the suggestion is not workable,
because if the hint is *not* issued, some implementations will have a very hard
time of ensuring that a local load will retrieve a new remotely-put value if
the local process has not issued some sort of incantation to update the
memory.
Why is it not sufficient to relax the requirement, and state that "a put *may*
become visible to other access, either local load or get, only after the call
to WINDOW_IN". This allows "local" processes to write directly into the buffer
without a copy. In other words, a process must not only call WINDOW_IN (or
whatever) to ensure that the buffer has been updated, it must also know that
the buffer *might* have been updated even before it calls WINDOW_IN. If it
wants to ensure that the buffer has *not* been updated, it can either
synchronize manually with the putter, or MPI can offer other directives
to explicitly delay/allow automatic updates to the buffer. This allows
applications to more clearly state their expectations of the communication,
and thereby allows MPI to use the best optimization for that particular
situation. (Note that, if these directives were called MPI_DELAY_UPDATES and
MPI_ALLOW_UPDATES, then MPI_WINDOW_IN should *not* imply MPI_ALLOW_UPDATES,
since this could cause a race condition between the user process issuing the
next MPI_ALLOW_UPDATES and the arrival of the next MPI_PUT. In fact, if this
approach is used, the initial DELAY/ALLOW state should probably be specified
in the buffer allocation call itself, for the same reasons.)
-Dave
-- =============================================================================== David C. DiNucci | MRJ, Inc., Rsrch Scntst |USMail: NASA Ames Rsrch Ctr dinucci@nas.nasa.gov| NAS (Num. Aerospace Sim.)| M/S T27A-2 (415)604-4430 | Parallel Tools Group | Moffett Field, CA 94035