I am sorry about the late dispatch, but it took some time to reach a
consensus within our team.
- --------------------------------------------------------------------
4.? Lock, Unlock
MPI_LOCK_WINDOW(comm)
IN comm communicator for put/get operation
This function locks the RMC window associated with 'comm' against
further put/get operations until it is explicitly unlocked by the
user. This is a local call. Each process can lock/unlock its windows
independent of other processes. The data put to a locked window is
discarded tacitly. An attempt to get data from locked window ends up
in failure and returns an error to the caller.
alternatives:
(1) It would be more convenient if a part of the window could be
locked/unlocked in the same manner. However, it seems that this kind
of operation would only be realized at the expense of performance.
(2) The user would like to be informed when the 'put' data has been
discarded. This can be achieved in the target process if we can
provide a mechanism which generates an event upon unsuccessful puts,
and the event can be caught by a user-posted event handler. One way to
do this is to provide two kinds of counters with the request object
attached to the window. One counter increments as usual, regardless of
success/failure of the put/get operation. The other increments only
when put/get operation succeeded. By comparing these two in the event
handler associated with the request object, one can detect loss of
data due to put/get to the locked window. It would be even better if
unsuccessful puts could be detected in the originating process through
a request object attached to the put call, but it seems too expensive
an operation to implement.
rationale:
A lock operation can be implemented at the user level createing
semaphore on an atomic function such as RMW. However, with an adequate
hardware support, MPI_LOCK_WINDOW may be able to provide a more
efficient way to realize the same functionality.
MPI_UNLOCK_WINDOW(comm)
IN comm communicator for put/get operation
This function unlocks the RMC window.
--------------------------------------------------------------------
Nobutoshi Sagawa (sagawa@crl.hitachi.co.jp)
Processor Systems Dept.
Central Research Laboratory, Hitachi Ltd.
Higashi Koigakubo 1-280,
Kokubunji, Tokyo 185, JAPAN.
tel: +81-42323-1111 fax: +81-42327-7743
--------------------------------------------------------------------