Subject: Re: Context proposals

From: L J Clarke <[email-masked]>
Date: Tue, 29 Jun 93 17:53:52 BST

Jim writes:

> What are Contexts for ?
> =======================

The purpose of context is to provide a mechanism which allows
programmers to write software which isolates one set of communications
from other sets of communications without use of message tags - to
create different universes of messages, or different tag spaces, in the
jargon. 

> The selling point of contexts is that they allow the development of
> modular software by insulating library routines from the state of the
> communications system when they are called.

One application (important application) of context is that it allows
library software to be written in such a manner that communications
private to the library conflict neither with those of the library user
or of other libraries. 

This is not the only application of context - it is perfectly reasonable
and sensible for the user program to make use of contexts (even in the
absence of libraries) to provide different message universes.  Its
probably a very sensible thing to do in complex applications. 

> 
> I think this is the SOLE purpose of contexts.
> 

I think this is one purpose of contexts, for sure, but I can not agree
that it is the only purpose of contexts. 

> Issues with the current proposal
> ================================
> 1) It doesn't supply the security we want.
>    Users are allowed to arbitrarily bind context numbers which they
>    invent to communicators in an entirely anarchic manner. There is
>    therefore no possible security guarantee.

Sure the current proposals give the programmer enough rope to hang
himself.  However there are ways of using contexts within the current
proposal which certainly are safe. 

> 2) Because the user can locally construct communicators and bind
>    contexts to them the receiver of a message where the receive has a
>    wild-carded from field (given widespread current practice which
>    doesn't support selection on from, this is likely to be a large
>    proportion of receives !) has to perform a back translation from an
>    absolute process identifier into a group rank. Unfortunately this
>    is non-trivial to implement, and has to be done even if the message
>    is really an inter-group communication, since there is no easy way
>    (either at sender or receiver) of knowing this fact.

I disagree that it is necessary to do the back-translation.  I'll mail
further tomorrow including an explanation of how the back-translation is
avoided, I gotta go right now. 

Best Wishes
Lyndon

         /--------------------------------------------------------\
    e||) | Lyndon J Clarke    Edinburgh Parallel Computing Centre | e||) 
    c||c | Tel: 031 650 5021  Email: [email-masked]  | c||c 
         \--------------------------------------------------------/

---

From: Ian Glendinning <[email-masked]>
Date: Wed, 30 Jun 93 19:54:39 BST

> From: [email-masked] (David Walker)

>     I assume you're performing intergroup communication in which the
>     rank is wildcarded on the receiver, i.e., the receiver will receive
>     from any process in the other group. I don't see the problem here.
>     The actual rank (relative to the send group) of the sender is part of the
>     message envelope (according to my interpretation of Section 1.4.2).
>     When calling MPI_QUERY to query the return status object, the rank 
>     returned is relative to the send group. Maybe I'm misunderstanding
>     what you mean.

At last week's meeting, on the Thursday afternoon, various members of the
context subcommittee attempted to give us "the big picture", since it had
been said by someone that what the rest of the committee needed was to
understand the mind-set of the context subcommittee.  Mark Sears gave us a
brief look "under the hood" of an example implementation.  In the scheme
he presented, the message envelope (header) consisted of source TID,
destination TID, tag, and context.  No ranks.
   Ian
--
[email-masked]        Ian Glendinning
Tel: +44 703 593368                  Dept of Electronics and Computer Science
Fax: +44 703 593045                  University of Southampton SO9 5NH England