Subject: Helpful Summary of Contexts Proposals

From: L J Clarke <[email-masked]>
Date: Thu, 25 Mar 93 15:44:59 GMT

Dear MPI Colleagues

I imagine that many of you have started or are about to start reading
the three contexts subcommittee proposals.  We have prepared a
comparative, and non judgmental, summary of the three proposals which
may be of some assistance to MPI.

The three proposals in the context subcommittee share common features,
and have differences both in concept and detail.  Two of these proposals
contain features which are "separable" and could equally appear as
components of one or more other proposals.  Hopefully the summary will:
(a) help us to discuss the important differnces between the proposals and
make agreements on how we should proceed with respect to those issues;
(b) help us to isolate the separable points and make separate
agreements on those issues.

I hope that the summary is both accurate and complete. Please make
corrections and additions if you discover such. I apologise in advance
for my errors, which are surely inevitable.

Best Wishes
Lyndon

----------------------------------------------------------------------

Summary of context subcommittee proposals
*****************************************

The three proposals in the context subcommittee share common features,
and have differences both in concept and detail.  Two of these proposals
contain features which are "separable" and could equally appear as
components of one or more other proposals.  This summary identifies
feature of proposals as: Common Features; Separable Features; Concept
Differences; Detail Differences. 

Common Features
===============

1. Process group management
---------------------------

In each proposal groups are created dynamically and have static
membership. In each proposal a group can be created as a partition of
an existing group and as a permutation of an existing group. Each
proposal allows (or suggests) that a group can be created as an
explicit list of processes.

2. Provision for point-to-point communication within group.
-----------------------------------------------------------

In each proposal point-to-point communcation of scope closed within a
group can be expressed in terms of a reference to a group coupled
with a process rank within the group.

3. Provision for collective communication within group.
------------------------------------------------------

In each proposal collective communication of scope closed within a
group can be expressed in terms of a reference to a group.

4. Opacity of group and process description.
--------------------------------------------

In each proposal the description of groups and processes is opaque.
Groups and processes are referred to by a handle like object.

Separable Features
==================

1. Tag usage in point-to-point communication.
---------------------------------------------

Proposal III describes tag selection for Receive in a two-integer form.
Proposals I and VII say nothing about tag usage.
   
This feature can be placed in all Proposals I, III and VII.

[Historical note: Tony did say to methat this would appear as an
appendix with our mutual recognition that it can equally appear as a
feature of any of the proposals.]

2. Tag usage in collective communication.
-----------------------------------------

Proposal III suggests that tag should be used as an argument to 
collective communication where this will assist debugging.
Proposals I and VII say nothing about usage.

This feature can be placed in all Proposals I, III and VII.

3. Context or Group cache
-------------------------

Proposal VII decribes a cache facility associated with contexts and groups.
Proposal III describes a similar cache facility associated with groups.

This feature can be placed in all Proposals I, III and VII.

4. Opaque object (descriptor) transmission.
-------------------------------------------

Proposal VII suggests that opaque object transmission can be 
provided by integration with transmission of typed data.
Proposal III suggests that opaque transmission is 
provided by a mechanism for flattening a descriptor into a
memory buffer.
These are just details of different ways of providing the feature.

This feature can be placed in Proposals III and VII.
This feature cannot be placed in Proposal I.

5. Context registry.
--------------------

Proposal III describes a context name registry service.
Proposal VII indicates that such a service would be useful.

This feature can be placed in Proposals III and VII.
This feature cannot be placed in Proposal I.

Concept Differences.
====================

1. Concept of CONTEXT and GROUP
-------------------------------

In Proposal I CONTEXT and GROUP are identical concepts and are not
distinguished.

In Proposal III CONTEXT is a lower degree concept that GROUP. The
GROUP concept inherits aspects of the CONTEXT concept.

In Proposal VII CONTEXT is a higher concept than GROUP. The CONTEXT
concept inherits aspects of the GROUP concept.

2. Scope of point-to-point communication.
-----------------------------------------

In Proposal I the scope of point-to-point communication is limited to
the CONTEXT. Processes which are members of distinct groups can only
communicate through a common ancestor group.

In Proposals III and VII the scope of point-to-point communciation is
not limited. Processes which are members of distinct groups can
communicate without reference to a common ancestor group.

3. Transmission of group or context.
------------------------------------

In Proposal I the CONTEXT cannot be transmitted from one process to
another.

In Proposals VII and III both CONTEXT and GROUP can be transmitted
from one process to another. In Proposal VII PROCESS can alo be
transmitted (Proposal III suggests such but makes no specific
provision, presumably a small oversight?)

Detail differences.
===================

1. Manifestation of context
---------------------------

In Proposals I and VII context is an opaque object.

In Proposal III context is an integer(?).

2. Deletion of group.
---------------------

In Proposals VII and III groups can be deleted.

In Proposal I there is no provision for group deletion (possibly a
small oversight?).

3. Duplication of group.
------------------------

In Proposals I and III a group there is explicit provision for
duplication of an existing group to form a new (distinct, homomorphic)
group.

In Proposal VII there is no such provision as similar funtionality is
provided by the context (although the provision for group partition,
permutation and definition can be used to create a snapshot copy of a
group).

4. Global shared variables.
---------------------------

Proposals I and VII do not require global shared variables.

Proposal III requires a global shared variable (which can be
implemented as such or of course in the traditional approach as a
global service process.)

3. Process identifier addressed communication.
----------------------------------------------

Proposal I does not make provision for process identifier addressed
communication.

Proposal III makes provision for process identifier addressed
communication within multiple distinct tag spaces.

Proposal VII makes provision for process identifier addressed
communication within a single distinct tag space.

5. Inter-group communication.
-----------------------------

Proposal I does not provide inter-group communication as it limits the
scope of point-to-point communication to be closed within a group.

Proposal VII provides inter-group communication in an addressing form
specified by sender (receiver) group, receiver (sender) group and
sender (receiver) rank.

Proposal III provides inter-group communication as process identifier
addressed communication.

----------------------------------------------------------------------

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

---

From: Tony Skjellum <[email-masked]>
Date: Thu, 25 Mar 93 11:33:39 CST

Thank you for this additional work, Lyndon.  Why don't we include this
as the preface to our proposal?  It looks good, but I will have to read
it in detail, before rendering my complete view on this matter.

Who are these other, new cc people...
- Tony

----- Begin Included Message -----