Re: a (radical ?) alternative to current chapter 4

(no name) (Marc Snir/Watson/IBM Research@nas.nasa.gov)
2 Jul 96 16:50:35

---------- Forwarding Original Note --------
To: snir @ watson.ibm.com (Marc Snir/Watson/IBM Research) @ GW3
cc: mpi-1sided @ mcs.anl.gov @ GW3
From: jcownie @ bbn.com (James Cownie) @ GW3
Date: 07/02/96 02:28:07 PM
Subject: Re: a (radical ?) alternative to current chapter 4
Security:

Marc,

You have MPI_WINDOW_LOCK (a blocking lock acquisition call)
You have an MPI_WINDOW_TRYLOCK which returns true or false (as the
current MPI_IPROBE).

Don't you also want an MPI_WINDOW_ILOCK which returns a request which
one can later test or wait on ?

The request completes once the lock is claimed by this call. Such a
call would allow non-busy waiting for a lock, which is not possible
with the current calls.

Of course this may have implementation implications (like requiring a
global queue of lock requests somewhere.)

****
a global queue might be needed, anyhow, for the blocking lock call, if we want
to be able to deschedule the blocked process.
****

Also you say nothing about fairness of lock acquisition. (This may be
deliberate :-) ). Somwehere I think we should say something, even if
it is only that no fairness guarantees are given.

****
Fairness is probably important. Thinking is needed, in a multikernel
environmnet, on the interaction between global scheduling, as implied by lock
acquistion/release, and local schduling decisions by the local kernel. E.g.,
the priority inversion problem, but now due global locks.
****

-- Jim

James Cownie
BBN UK Ltd
Phone : +44 117 9071438
E-Mail: jcownie@bbn.com