Subject: Proposal VI'

From: [email-masked] (James Cownie)
Date: Wed, 24 Mar 93 14:51:40 GMT

Lyndon,

Please help me, I am having trouble understanding proposal VI'.

It seems to me that there is a bootstrap problem with (at least) the
NULL Context form of point to point. (I'd hoped that this would be the
simplest and easiest to understand and use, so I started with it).

First problem
-------------
ALL descriptors are local (including process descriptors).

Therefore before I can send a message to someone I have to find out
(or construct) their (local to me) process descriptor.

How do I do this ? 
They can send it to me, except that the problem just moves to them, as
they don't know my address either !

(We had this exact problem in CSN, which is why we introduced the
CSN nameserver at a known, fixed, address. Having used it I don't
actually much like that solution !)

Second Problem (more of a feature).
-----------------------------------
Since the descriptors are ALL local, it will be extremely hard to make
sense of trace/debug information. 

Consider code like this

	MPI_PD from;

	MPI_CRECV(...  ,&from, ...); /* Wildcard receive but tell me
					where it came from */
	printf("[%08X] Received from %8X\n",MPI_MYPD(), from);

Coupled with code like this

	printf("[%08X]Sending to %08X\n", MPI_MYPD(), to);

The output will be TOTALLY meaningless and confusing !

e.g. It could very easily look like this
[00000001] Sending to 00000002
[00000001] Received from 00000002

etc.

-- Jim
James Cownie 
Meiko Limited			Meiko Inc.
650 Aztec West			Reservoir Place
Bristol BS12 4SD		1601 Trapelo Road
England				Waltham
				MA 02154

Phone : +44 454 616171		+1 617 890 7676
FAX   : +44 454 618188		+1 617 890 5042
E-Mail: [email-masked]   or    [email-masked]

---

From: L J Clarke <[email-masked]>
Date: Wed, 24 Mar 93 15:18:19 GMT

Hi Jim

> Please help me, I am having trouble understanding proposal VI'.

Sure. 

First thing, Rik and I have done a "merger" of Proposals V and VI, to
produce a Proposal VII.  This is a cut down of VI with inclusion of
group/context user cache capability. 

I think your queries propagate into Proposal VII, and I shall reply.

There kind of is, indeed, and I know about that.  Hence I explore in the
discussion having global process identifiers instead of local process
descriptor handles.  Proposal VII went to identifiers and then back to
descriptors as I and Rik played tug-of-war with the thing. 

> First problem

Yes.

> they don't know my address either !

Indeed.

For processes in which you share the initial group, then they can be
sent in a message using closed context communication, or more easily you
can use the (group, rank) -> process mapping routine.  Of course this
doesnt let you find out about any processes in a different initial group
(either becaus either because the program was kicked off that way or
because the other processes were created later, although that kind of
process creation is not *yet* in MPI). 

> actually much like that solution !) 

Well as you know we used that CS~Tools software a lot for a lot of
different things.  For data driven parallel programming we never liked
it either.  However for modular applications --- distinct data driven
(SPMD like) modules composed as module graphs --- we find the name
server approach for register and lookup of group very convenient and
expressive indeed!

> [00000001] Received from 00000002 

Yes, I should hope that it would!

This is a good point.  So I suggest that for this kind of thing one
needs to either use one of the context oriented forms, or we need just
to add a (group, process) -> rank mapping (which might be slow, but its
only debugging after all), or a descriptor attribute query procedure to
return a global unqiue process identifer which will be embedded into the
descriptor anyway.

So for me, your helpful questions translate into a requirement to add
one or two additional procedures into Proposal VII as outlined in the
above paragraph.  This will have to happen at or after the meeting,
since Proposal I and VII are already en route to Steve Otto our Draft
Editor. 

By the way, Jim, I'd be real grateful if you would explain to me what
the Elan/Elite "contexts" that I have heard mentioned do. 

Best Wishes
Lyndon

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