Mon Nov 23 16:03:14 EST 1992
From owner-mpi-formal@CS.UTK.EDU  Wed Nov 25 13:38:40 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA21710; Wed, 25 Nov 92 13:38:40 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA09826; Wed, 25 Nov 92 13:14:59 -0500
Received: from relay1.UU.NET by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA09818; Wed, 25 Nov 92 13:14:52 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA16145; Wed, 25 Nov 92 13:14:48 -0500
Received: from kailand.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 131338.3994; Wed, 25 Nov 1992 13:13:38 EST
Received: from brisk.kai.com (brisk) by kailand.kai.com via SMTP
  (5.65d-92031301) id AA12688; Wed, 25 Nov 1992 12:06:04 -0600
Received: by brisk.kai.com
  (920330.SGI-92101201) id AA08958; Wed, 25 Nov 92 12:06:02 -0600
Date: Wed, 25 Nov 92 12:06:02 -0600
Message-Id: <9211251806.AA08958@brisk.kai.com>
To: mpi-pt2pt@cs.utk.edu, mpi-collcomm@cs.utk.edu, mpi-formal@cs.utk.edu,
        mpi-ptop@cs.utk.edu
Reply-To: William.Gropp's.message.of.Wed@kai.com,
        25 Nov 92 09:28:43 CST <9211251528.AA12985@godzilla.mcs.anl.gov>
Subject: Nonblocking functions and handlers.
From: Steven Ericsson Zenith <zenith@kai.com>
Sender: zenith@kai.com
Organization: 	Kuck and Associates, Inc.
		1906 Fox Drive, Champaign IL USA 61820-7334,
		voice 217-356-2288, fax 217-356-5199


Bill Gropp writes:

    (Warning: radical position that I'm not sure even I hold follows:)
    An interesting issue is whether we should defer all nonblocking communications
    to a thread-based execution model.

I'm not so sure this is a radical position Bill since even
nonsynchronized communication will need to be defined formally this way.
Nonsynchronized communication is in effect creating a parallel process
that has the job of passing the communication on. Al Geist earlier asked
the question wheather buffers used by nonsynchronized communication
should be accessible after the communication has started - the answer
should be - no, unless by some explicit mechanism that formally amounts
to a communication with the process mentioned above.  Any nonexplicit
interaction (e.g. a write to the buffer) would have to be specified as
formally equivalent to an explicit interaction.

Also, there is quite a range of terminology in use.  One common error:
"Asynchronous" and "synchronous" has quite a particular meaning in EE
and when CS people use the terms in relation to message passing they
usually mean NONSYNCHRONIZED and SYNCHRONIZED. Also BLOCKING =
SYNCHRONIZED. Let us begin a glossary that defines the terms we use - if
no-one else volunteers I'll take this to be the responsibility of the
Formal Specification Subcommittee. So I'm looking for volunteers from
that subcommittee.

Steven

From owner-mpi-formal@CS.UTK.EDU  Wed Nov 25 16:38:24 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA25899; Wed, 25 Nov 92 16:38:24 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA14144; Wed, 25 Nov 92 16:19:30 -0500
Received: from relay1.UU.NET by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA14140; Wed, 25 Nov 92 16:19:27 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA16575; Wed, 25 Nov 92 16:19:01 -0500
Received: from kailand.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 161434.11738; Wed, 25 Nov 1992 16:14:34 EST
Received: from brisk.kai.com (brisk) by kailand.kai.com via SMTP
  (5.65d-92031301) id AA21726; Wed, 25 Nov 1992 15:05:38 -0600
Received: by brisk.kai.com
  (920330.SGI-92101201) id AA09109; Wed, 25 Nov 92 15:05:36 -0600
Date: Wed, 25 Nov 92 15:05:36 -0600
Message-Id: <9211252105.AA09109@brisk.kai.com>
To: mpi-formal@cs.utk.edu
Cc: Bill.Roscoe@prg.ox.ac.uk, dongarra@cs.utk.edu
Subject: MPI Formal Specification Subcommittee.
From: Steven Ericsson Zenith <zenith@kai.com>
Sender: zenith@kai.com
Organization: 	Kuck and Associates, Inc.
		1906 Fox Drive, Champaign IL USA 61820-7334,
		voice 217-356-2288, fax 217-356-5199

				    
	    Welcome to the Formal Specification Subcommittee
	      of the Message Passing Interface Committee.
	    ------------------------------------------------

Our job, as I see it, is to track events in the other subcommittees, to
specify formally the final definition and to ring bells if the errant
desires of the other subcommittees present semantic or specification
problems.

The specification language of choice is CSP, and the reference
specification will be written in it. That does not preclude other
specifications useing other notations to be derived now or later.  CSP's
maturity and ability to express concurrent behavior make it ideal as a
tool for capturing these semantics.

The issue of verification is an important one and we should begin now
considering how implementations can be verified.

As soon as the dust settles in the other committees I'll produce a
working draft of the specification. I'll endevour to make that available
before the January meeting in Dallas.

Steven Ericsson Zenith
Chairperson, MPI Formal Specification Subcommittee.

P.S. I copy Bill Roscoe at Oxford University and Jack Dongarra as a
matter of courtesy.

From owner-mpi-formal@CS.UTK.EDU  Fri Nov 27 12:07:50 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA25718; Fri, 27 Nov 92 12:07:50 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA08750; Fri, 27 Nov 92 12:06:51 -0500
Received: from relay2.UU.NET by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA08746; Fri, 27 Nov 92 12:06:37 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA04271; Fri, 27 Nov 92 12:06:23 -0500
Received: from kailand.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 120541.25493; Fri, 27 Nov 1992 12:05:41 EST
Received: from brisk.kai.com (brisk) by kailand.kai.com via SMTP
  (5.65d-92031301) id AA12937; Fri, 27 Nov 1992 10:25:06 -0600
Received: by brisk.kai.com
  (920330.SGI-92101201) id AA11158; Fri, 27 Nov 92 10:25:05 -0600
Date: Fri, 27 Nov 92 10:25:05 -0600
Message-Id: <9211271625.AA11158@brisk.kai.com>
To: mpi-collcomm@cs.utk.edu
Cc: mpi-formal@cs.utk.edu
In-Reply-To: Steven Ericsson Zenith's message of Wed, 25 Nov 92 13:22:31 -0600 <9211251922.AA09015@brisk.kai.com>
Subject: MPI collective communication...
From: Steven Ericsson Zenith <zenith@kai.com>
Sender: zenith@kai.com
Organization: 	Kuck and Associates, Inc.
		1906 Fox Drive, Champaign IL USA 61820-7334,
		voice 217-356-2288, fax 217-356-5199


Observation on the following:

	   all2all()    equivalent to every task in a group calling broadcast.

	Why doesn't this cause deadlock in the group? Nah! It does cause deadlock.

I was thinking about this yesterday over my stuffed Tofu :-). Even if we
permit the broadcast to be nonsynchronized we have the problem I
described earlier with defining the behavior of parallel broadcasts. If
all2all is nonsynchronized then the order of received values must be
nondeterministic.

(|| i for N: broadcast(C, e[i])) || (|| k for N:|| j for N: receive(C, v[k, j]))

i.e., the order of values from e in v is nondeterministic. Now maybe I'm
missing something that has to do with the TMC perspective - in any case,
I have never seen the use of such a construction in an application. If
we do specify a deadlock free behavior for all2all is it desirable given
this nondeterminism? I know it's implementation will be tricky to get
right. Can we have some vendor comments please?

I have assumed here that the values broadcast are the same type.

Steven

Footnote: The syntax 

(|| i for N: broadcast(C, e[i])) || (|| k for N:|| j for N: recieve(C, v[k, j]))

illustrates N broadcasts implementing the all2all, where N is the number
of participants, in parallel with N parallel groups of N (parallel) receives.

From owner-mpi-formal@CS.UTK.EDU  Thu Dec  3 08:38:36 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA27950; Thu, 3 Dec 92 08:38:36 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA14104; Thu, 3 Dec 92 08:25:15 -0500
Received: from sun2.nsfnet-relay.ac.uk by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA14100; Thu, 3 Dec 92 08:24:53 -0500
Via: uk.ac.southampton.ecs; Thu, 3 Dec 1992 13:06:23 +0000
From: ms@parallel-applications-centre.southampton.ac.uk
Via: calvados.pac.soton.ac.uk (plonk); Thu, 3 Dec 92 12:42:35 GMT
Received: from maddog.pac.soton.ac.uk by calvados.pac.soton.ac.uk;
          Thu, 3 Dec 92 12:47:17 GMT
Date: Thu, 3 Dec 92 12:48:37 GMT
Message-Id: <9688.9212031248@maddog.pac.soton.ac.uk>
To: mpi-formal@cs.utk.edu
Subject: Formal Specification Language
Cc: igl@ecs.soton.ac.uk, md@ecs.soton.ac.uk, mbh@ecs.soton.ac.uk,
        ajgh@ecs.soton.ac.uk,
        ms@parallel-applications-centre.southampton.ac.uk

Hello Formal Specification Subcommittee

My name is Dr Mike Surridge - Tony Hey asked me to look in on the MPI
conversations and to contribute as much as possible.  Here I reply to
the first interesting message I saw from Steve Zenith.

I am currently working at the University of Southampton Parallel Applications
Centre, where we have a wide range of applications projects running with UK
industrial partners.  I am nominally in charge of our Scientific/Engineering
number-crunching activities, but I am also active in our Real-Time computing
division working on simulation and control problems.

In the past I was the author of ECCL which was the first efficient message
passing system implementing arbitrary occam channel communication connect-
ivity on (almost) arbitrary networks, and a direct ancestor of the Esprit-
funded VCR system.  I happen to believe that synchronous point-to-point
communications provide the cleanest possible semantics.

Unfortunately, most parallel scientific computation makes use of asynchronous
communication - partly to avoid having to deal with deadlock issues (the leave
it to the system school), but also for performance reasons.  All the major
vendors support asynchronous communication primitives for these applications,
and clearly expect synchronisation to be used only where it is really needed.

Last time I looked at CSP it was unable to handle asynchronous communication
at all.  Have there been further developments of which I am unaware?  If not,
then should CSP be adopted for this exercise, given that the interface we are
trying to specify will have to be accepted as an alternative (or successor) to
systems such as Intel's NX/2, and will therefore have to include an asynch-
ronous capability.

I suggest some serious thought be given to this, lest (a) formal specification
become marginalised and ignored or (b) the entire MPI exercise become irrel-
evant.

	-- Mike Surridge (ms@uk.ac.soton.ecs)
From owner-mpi-formal@CS.UTK.EDU  Thu Dec  3 12:08:52 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA04135; Thu, 3 Dec 92 12:08:52 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA18491; Thu, 3 Dec 92 12:00:04 -0500
Received: from relay1.UU.NET by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA18481; Thu, 3 Dec 92 12:00:00 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA02150; Thu, 3 Dec 92 11:32:42 -0500
Received: from kailand.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 113121.20596; Thu, 3 Dec 1992 11:31:21 EST
Received: from brisk.kai.com (brisk) by kailand.kai.com via SMTP
  (5.65d-92031301 for <mpi-formal@cs.utk.edu>) id AA04572; Thu, 3 Dec 1992 09:59:02 -0600
Received: by brisk.kai.com
  (920330.SGI-92101201) id AA01933; Thu, 3 Dec 92 09:58:59 -0600
Date: Thu, 3 Dec 92 09:58:59 -0600
Message-Id: <9212031558.AA01933@brisk.kai.com>
To: uunet!parallel-applications-centre.southampton.ac.uk!ms@uunet.UU.NET
Cc: mpi-formal@cs.utk.edu, igl@ecs.soton.ac.uk, md@ecs.soton.ac.uk,
        mbh@ecs.soton.ac.uk, ajgh@ecs.soton.ac.uk, ms@pac.soton.ac.uk
In-Reply-To: uunet!parallel-applications-centre.southampton.ac.uk!ms's message of Thu, 3 Dec 92 12:48:37 GMT <9688.9212031248@maddog.pac.soton.ac.uk>
Subject: Formal Specification Language
From: Steven Ericsson Zenith <zenith@kai.com>
Sender: zenith@kai.com
Organization: 	Kuck and Associates, Inc.
		1906 Fox Drive, Champaign IL USA 61820-7334,
		voice 217-356-2288, fax 217-356-5199


Hi Mike,

You are batting from the wrong wicket. It is not anyones intention to
adopt CSP as the MPI but to use CSP as the specification language - for
which it is ideally suited.

Nonsynchronized (what you called "asynchronous") communication can very
easily be specified in CSP.

There is a bias against CSP in some quarters because of an association
with Occam. I'm sorry to say that we did CSP a disservice when we
defined Occam - I was intimately involved with David May in that
language design and I wrote the Occam 2 reference manual - the defacto
standard, published under the name INMOS Limited ;-). You shouldn't
judge CSP by your experiences with Occam. CSP is a rich and
comprehensive specification mathematics, a very useful formal tool that
can be applied to good effect in this case.

Incidently, my last language design, Ease, also used CSP as the formal
basis and that language doesn't use communication as a model for
interaction at all but rather uses logically shared data structures -
specified using CSP.

To conclude, in current proposals for MPI, I see nothing that prohibits
the use of CSP as the specification form and what is more I believe that
a CSP specification will assist implementors in a way that other forms
will not.

Steven Ericsson Zenith




From owner-mpi-formal@CS.UTK.EDU  Thu Dec  3 15:38:40 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA10807; Thu, 3 Dec 92 15:38:40 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA26873; Thu, 3 Dec 92 15:27:00 -0500
Received: from sun2.nsfnet-relay.ac.uk by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA26866; Thu, 3 Dec 92 15:26:46 -0500
Via: uk.ac.southampton.ecs; Thu, 3 Dec 1992 19:07:14 +0000
Via: brewery.ecs.soton.ac.uk; Thu, 3 Dec 92 18:41:47 GMT
From: Ian Glendinning <I.Glendinning@ecs.soton.ac.uk>
Received: from holt.ecs.soton.ac.uk by brewery.ecs.soton.ac.uk;
          Thu, 3 Dec 92 18:43:56 GMT
Date: Thu, 3 Dec 92 18:49:09 GMT
Message-Id: <3194.9212031849@holt.ecs.soton.ac.uk>
To: mpi-formal@cs.utk.edu, ms@parallel-applications-centre.southampton.ac.uk
Subject: Re: Formal Specification Language
Cc: md@ecs.soton.ac.uk, mbh@ecs.soton.ac.uk

> From ms@uk.ac.soton.pac Thu Dec  3 12:45:02 1992

> My name is Dr Mike Surridge - Tony Hey asked me to look in on the MPI
> conversations and to contribute as much as possible.  Here I reply to
> the first interesting message I saw from Steve Zenith.

Tony also asked me to contribute to discussions, as well as Mark Debbage and
Mark Hill.  The four of us should shortly be added to the mpi-formal mailing
list.

> Last time I looked at CSP it was unable to handle asynchronous communication
> at all.  Have there been further developments of which I am unaware?  If not,

Ummm, as far as I'm aware CSP has always been able to handle asynchronous
communication, and I agree with Steve that it would be an ideal tool to
capture the semantics.  The fact that it is not a primitive concept in the
language doesn't mean it can't represent it - you just need to have things
like explicit buffer processes.  In fact, this is no bad thing, because it
allows you to specify more precisely than is usually done how the buffers
behave.  I think it is crucial that no matter what is ultimately settled
on for the standard, it should have clearly defined semantics.  This is an
area that has been sadly neglected for most existing message passing systems,
particularly the mailbox-based ones.  For example, suppose a program
specifies in a receive call that it will block until it receives a message
from processor number 10.  If the first message that arrives is from processor
11, and is followed by a message from processor 10, what happens?  Does the
program remain indefinitely blocked, or does the arrival of the second message
wake it up?  It seems to me that this is the sort of area where different
implementors could make different choices, if no definite behaviour were
specified by a standard.  There are other forms of behaviour on the other
hand that you might choose to deliberately specify as being arbitrary.
   Ian
--
I.Glendinning@ecs.soton.ac.uk        Ian Glendinning
Tel: +44 703 593368                  Dept of Electronics and Computer Science
Fax: +44 703 593045                  University of Southampton SO9 5NH England
From owner-mpi-formal@CS.UTK.EDU  Thu Dec  3 17:38:41 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA12597; Thu, 3 Dec 92 17:38:41 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA00766; Thu, 3 Dec 92 17:35:01 -0500
Received: from relay2.UU.NET by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA00761; Thu, 3 Dec 92 17:34:58 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA08388; Thu, 3 Dec 92 17:34:59 -0500
Received: from kailand.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 173206.14795; Thu, 3 Dec 1992 17:32:06 EST
Received: from brisk.kai.com (brisk) by kailand.kai.com via SMTP
  (5.65d-92031301 for <mpi-formal@cs.utk.edu>) id AA02775; Thu, 3 Dec 1992 15:22:24 -0600
Received: by brisk.kai.com
  (920330.SGI-92101201) id AA03117; Thu, 3 Dec 92 15:22:23 -0600
Date: Thu, 3 Dec 92 15:22:23 -0600
Message-Id: <9212032122.AA03117@brisk.kai.com>
To: mpi-formal@cs.utk.edu
Cc: uunet!parallel-applications-centre.southampton.ac.uk!ms@uunet.UU.NET,
        igl@ecs.soton.ac.uk, md@ecs.soton.ac.uk, mbh@ecs.soton.ac.uk,
        ajgh@ecs.soton.ac.uk, ms@ecs.soton.ac.uk
In-Reply-To: uunet!parallel-applications-centre.southampton.ac.uk!ms's message of Thu, 3 Dec 92 19:54:48 GMT <10067.9212031954@maddog.pac.soton.ac.uk>
Subject: Asynchronous Communication.
From: Steven Ericsson Zenith <zenith@kai.com>
Sender: zenith@kai.com
Organization: 	Kuck and Associates, Inc.
		1906 Fox Drive, Champaign IL USA 61820-7334,
		voice 217-356-2288, fax 217-356-5199


Mike,

I'm having trouble following you. Even in the cases you describe - as
much as they might be undesirable - we can formally specify the behavior
using CSP (without any kind of extension). Ian's observations are
correct. The rest of your remarks seem to suggest that you would
advocate no formal specification at all.

Consider this: it is possible to simply specify in CSP a buffer of
infinite size and the rest of the subcommittees may prefer that the
formal specification says that at this point.

I also do not understand your point about the term "asynchronous". You
missed a message I posted earlier where I pointed out this common
mistake. "Synchronous" and "asynchronous" have quite particular meanings,
in EE for example, it is a common mistake in CS circles to use these
terms to refer to synchronized and non-synchronized communication.

This group is also tasked with defining a glossary of terms by the way.

Steven

P.S. Not being picky - but I do prefer being called Steven to Steve ;-)

From owner-mpi-formal@CS.UTK.EDU  Fri Dec  4 12:39:11 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA02494; Fri, 4 Dec 92 12:39:11 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA20516; Fri, 4 Dec 92 12:35:17 -0500
Received: from relay2.UU.NET by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA20492; Fri, 4 Dec 92 12:35:06 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA29585; Fri, 4 Dec 92 12:35:07 -0500
Received: from kailand.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 123304.23021; Fri, 4 Dec 1992 12:33:04 EST
Received: from brisk.kai.com (brisk) by kailand.kai.com via SMTP
  (5.65d-92031301 for <mpi-formal@cs.utk.edu>) id AA09657; Fri, 4 Dec 1992 10:25:25 -0600
Received: by brisk.kai.com
  (920330.SGI-92101201) id AA04860; Fri, 4 Dec 92 10:25:24 -0600
Date: Fri, 4 Dec 92 10:25:24 -0600
Message-Id: <9212041625.AA04860@brisk.kai.com>
To: mpi-formal@cs.utk.edu,
        uunet!parallel-applications-centre.southampton.ac.uk!ms@uunet.UU.NET
Cc: igl@ecs.soton.ac.uk
In-Reply-To: uunet!parallel-applications-centre.southampton.ac.uk!ms's message of Fri, 4 Dec 92 10:13:54 GMT <10680.9212041013@maddog.pac.soton.ac.uk>
Subject: Non-synchronized Communication.
From: Steven Ericsson Zenith <zenith@kai.com>
Sender: zenith@kai.com
Organization: 	Kuck and Associates, Inc.
		1906 Fox Drive, Champaign IL USA 61820-7334,
		voice 217-356-2288, fax 217-356-5199


	   Apologies for calling you `Steve' - I think Tony called you that when
   he asked me to put forward some ideas to you.

No problem. Tony picked up the habit from old colleagues at INMOS.

   All I am doing is pointing out a particular programming device, which probably
   occurs most often erroneously by accident (or design), but which does have a
   legitimate use in certain parallel algorithms.  My knowledge of CSP is far
   from comprehensive, by I think it is possible that the situation I have
   described lies outside it.  If you can tell me how CSP would cope with this
   situation then please do (gently, please).

OK. The situation you decribe does not lie outside of CSP and I'll
explain why - as gently as I can :-)

   The situation I was trying to describe is as follows :

   Process A makes use of a variable `x', which B may update at any time
   (in this context we will assume by sending a message to A).
   Process A reads the value of x at various points, but does not care how
   often it has been updated, nor even whether B was in the act of updating
   x (either the old or new value being acceptable).  Processes A and B are
   clearly non-synchronised, but further than that A does not even synchronise
   with the arrival of a message (messages just arrive, updating x).

There  are a couple of ways to tackle this.

Firstly, you will I imagine concede that you have described an
interleaving whatever the order of the reads and writes are. Thus the
communication is itself an interleaved process that, in effect, shares
possession of x and that actually interacts with B.

Let
	A = S;no_sync_send(x);R
then
	A||B = (S;((c ? x -> SKIP) ||| R)) || c:B

properly describes the situation you outline. Although S is the process
before the communication is instigated, which you didn't allow for - so
it doesn't exactly match your description. The interleaving allows
events in R using x to be interleaved safely and in any order. It would
be worth pointing out to implementors that they could just throw this
communication away since according to your "don't care" semantics the
input could be the last thing the program ever does - and thus, with no
further dependence, it can be optimized away ;-).

If x were really a variable I wanted to share with B; i.e., I didn't
really want a compiler to optimize it away because it is mapped onto a
transducer somewhere then a more tricky solution would have created a
process having sole prossession of x and specified all interactions on
x as communication events.

Your version of non-synchronized communication formally involves the
creation of a process that is interleaved with the remainder of the
process performing the communication and in the absence of any
synchronization with that interleaved communication can be deleted from
the program with not effect.

Steven







From owner-mpi-formal@CS.UTK.EDU  Mon Dec  7 19:10:06 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA09779; Mon, 7 Dec 92 19:10:06 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA27298; Mon, 7 Dec 92 18:54:32 -0500
Received: from sun2.nsfnet-relay.ac.uk by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA27292; Mon, 7 Dec 92 18:54:28 -0500
Via: uk.ac.southampton.ecs; Mon, 7 Dec 1992 23:53:51 +0000
Via: brewery.ecs.soton.ac.uk; Mon, 7 Dec 92 23:47:27 GMT
From: Ian Glendinning <I.Glendinning@ecs.soton.ac.uk>
Received: from holt.ecs.soton.ac.uk by brewery.ecs.soton.ac.uk;
          Mon, 7 Dec 92 23:49:17 GMT
Date: Mon, 7 Dec 92 23:54:55 GMT
Message-Id: <6607.9212072354@holt.ecs.soton.ac.uk>
To: mpi-formal@cs.utk.edu
Subject: Re: Asynchronous Communication.

> From zenith%kai.com%kailand@net.uu.uunet Fri Dec  4 00:56:04 1992

> I also do not understand your point about the term "asynchronous". You
> missed a message I posted earlier where I pointed out this common
> mistake. "Synchronous" and "asynchronous" have quite particular meanings,
> in EE for example, it is a common mistake in CS circles to use these
> terms to refer to synchronized and non-synchronized communication.
>
> This group is also tasked with defining a glossary of terms by the way.

Good, I think that that is very important.  I saw your previous message, and
was going to ask you to elucidate.  Could you explain what the particular
meanings you allude to are, and also the common mistakes?
   Ian
From owner-mpi-formal@CS.UTK.EDU  Thu Dec 10 13:39:48 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA09699; Thu, 10 Dec 92 13:39:48 -0500
Received:  by CS.UTK.EDU (5.61++/2.8s-UTK)
	id AA18681; Thu, 10 Dec 92 13:16:24 -0500
Received: from sun2.nsfnet-relay.ac.uk by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA18668; Thu, 10 Dec 92 13:16:15 -0500
Via: uk.ac.southampton.ecs; Thu, 10 Dec 1992 17:48:11 +0000
Via: brewery.ecs.soton.ac.uk; Thu, 10 Dec 92 17:41:29 GMT
From: Ian Glendinning <I.Glendinning@ecs.soton.ac.uk>
Received: from holt.ecs.soton.ac.uk by brewery.ecs.soton.ac.uk;
          Thu, 10 Dec 92 17:43:07 GMT
Date: Thu, 10 Dec 92 17:49:00 GMT
Message-Id: <9700.9212101749@holt.ecs.soton.ac.uk>
To: mpi-formal@cs.utk.edu
Subject: Blocking and synchrnous/ized behaviour

> From zenith%kai.com%kailand@net.uu.uunet Fri Dec  4 00:56:04 1992

> I also do not understand your point about the term "asynchronous". You
> missed a message I posted earlier where I pointed out this common
> mistake. "Synchronous" and "asynchronous" have quite particular meanings,
> in EE for example, it is a common mistake in CS circles to use these
> terms to refer to synchronized and non-synchronized communication.
>
> This group is also tasked with defining a glossary of terms by the way.

Steven,
       since you haven't yet responded to my request for clarification
on the above, why don't I stir things up a bit by explaining my
prefered terminology.  The clearest terminology I have come across in
this area is that of Meiko's CSTools, which distinguishes between
blocking / non-blocking and synchronous / asynchronous behaviour as
orthogonal concepts.  Blockingness is purely to do with whether a send
or receive call returns immediately or not.  Non-blocking calls leave
the user to poll the completion status of the communication, or to make
a separate call to wait for it's completion.  Blocking calls do not
return until the communication is complete. What it means for the
communication to have completed is defined by whether it is synchnonous
or not.  Synchronous sends are not deemed to be complete until the
message has been successfully delivered into the user buffer at the
receiving end, while asynchronous ones are deemed to be complete as
soon as the message has been copied out of the user buffer at the
sending end by the system, and it is safe to re-use that buffer.  There
is no difference between a synchronous and an asynchronous receive
call.  Either a message has been received or it has not.
   Ian
From owner-mpi-formal@CS.UTK.EDU  Mon Dec 14 03:30:33 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA02209; Mon, 14 Dec 92 03:30:33 -0500
Received: from localhost by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA09849; Mon, 14 Dec 92 03:30:22 -0500
X-Resent-To: mpi-formal@CS.UTK.EDU ; Mon, 14 Dec 1992 08:30:21 GMT
Errors-To: owner-mpi-formal@CS.UTK.EDU
Received: from relay2.UU.NET by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA09841; Mon, 14 Dec 92 03:30:19 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA01056; Mon, 14 Dec 92 03:30:19 -0500
Received: from kailand.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 032954.8547; Mon, 14 Dec 1992 03:29:54 EST
Received: from brisk.kai.com (brisk) by kailand.kai.com via SMTP
  (5.65d-92031301 for <mpi-formal@cs.utk.edu>) id AA27637; Sun, 13 Dec 1992 22:41:31 -0600
Received: by brisk.kai.com
  (920330.SGI-92101201) id AA03451; Sun, 13 Dec 92 22:41:29 -0600
Date: Sun, 13 Dec 92 22:41:29 -0600
Message-Id: <9212140441.AA03451@brisk.kai.com>
To: mpi-formal@cs.utk.edu, I.Glendinning@ecs.soton.ac.uk
Cc: parallel-applications-centre.southampton.ac.uk!ms@ecs.soton.ac.uk
In-Reply-To: Ian Glendinning's message of Thu, 10 Dec 92 17:28:55 GMT <9672.9212101728@holt.ecs.soton.ac.uk>
Subject: Life after CSP... and synchronous behavior.
From: Steven Ericsson Zenith <zenith@kai.com>
Sender: zenith@kai.com
Organization: 	Kuck and Associates, Inc.
		1906 Fox Drive, Champaign IL USA 61820-7334,
		voice 217-356-2288, fax 217-356-5199


My apologies for a week of silence; a broken right arm (I took my
children ice skating :-( ), business and a head cold have occupied me.
So in what follows forgive an increased density of typos etc..

First, to continue the discussion of the case described by Mike in
Southampton.

        > From ms@uk.ac.soton.pac Mon Dec 7 18:25:12 1992

     	 The central point in my "don't care" semantics is not that
     	 process A
         doesn't care WHETHER `x' has been written to by process B.  The
         particular property of the system I require is that A will
         allow an indefinite number of writes by B between any two
         accesses of x.  Having realised that this is the nub, it is
         clear that the way to proceed is by creating a third process
         (presumably spawned by A), and allocating variable x to this
         process, both A and B interacting with this process to access
         the variable.

    From: Ian Glendinning <I.Glendinning@ecs.southampton.ac.uk>
    Date: Mon, 7 Dec 92 23:44:59 GMT

    Yes, this is what I had in mind too.  The `third process' holding
    the variable could for example repeatedly execute what in occam
    would be an ALT (non-deterministic choice) between two channels,
    requesting to write to or read from the variable.  Personally I
    rather like the fact that using CSP notation forces you to make any
    non-determinism explicit like this.  I guess you could also hold x
    in a process subordinate to an interleaving of A and B, which also
    makes the non-determinisim explicit.

There are several points here. Firstly the choice you describe in not a
non-deterministic choice in the CSP sense. Occam has complex semantics
here. What is incorrectly called an "alternation" in Occam (it should
have been called "choice") wraps several CSP constructs into one -
badly. Occam's

	ALT
	  a ? x
	    P
	  b.in ? readx
	    b.out ! x

is deterministic; i.e., the choice is knowable even though in the case
where both input events occur simultaneously, the selection between them
is non-deterministic. It is important to understand where the
non-determinism lies here - in the above case non-determinism only
occurs in the selection of two simultaneous inputs. Whereas, the
difficult Occam syntax

	ALT
	  true & skip
	    P
	  true & skip
	    Q

describes a non-deterministic choice that in CSP is simply described as

	P [] Q

[] being my representation of the CSP general choice operator.

The reason I used interleaving to describe Mikes case is that it is
closer to the actual use in a language, like FORTRAN, than the distinct
process case. Your suggestion to use a distinct process is not an
unreasonable one but it reads more into the description than was there
at face value. Many users of the specification may have trouble
reasoning about the use of x in a complex expression as a communication.

In anycase it does not make much difference, as we shall see.

    Yes, I was a bit confused by Steven's last message - he didn't seem to
    be describing the same situation that you had in mind, and it was at
    this point that the brushing up on CSP was required.  Having now
    refreshed my memory a bit on the syntax and semantics, it seems to me
    that:

	A||B = (S;((c ? x -> SKIP) ||| R)) || c:B

    is not at all what Mike had in mind, so the optimizing out of the
    communication is not a problem.  Firstly this misses the essential point
    that B can update x many times but, more importantly, according to my
    understanding the value of x is not available to R.  I must confess that
    I could be wrong here, since I can't find any explicit reference in the
    CSP book to the usage rules for variables in conjunction with the |||
    operator.  I'm assuming that they're the same as those for ||.

You are wrong. Firstly, || and ||| are not equivalent and the
composition of two processes by interleaving does indeed permit use of
the same variable since all events including such a variable are
distinct by that interleaving. Secondly, even though the above only
shows a single input to x you can replace it with as many as you like to
the same effect - I was being concise. The essential point is not,
therefore, missed; x can be updated as many times as you like between
two uses in R.

Now let us consider the case where we use a distinct process to model
the behavior of x.

	A || ( X:(c ! x -> X [] c ? x -> X) || B

So, I have a intermediary process that is recusively making a truely
non-deterministic choice on each iteration. If this *is* the
specification then I can always chose to do the input OR the output;
ergo I can optimize one or the other away and cause deadlock ;-) So you
did not mean nondeterministic choice. Therefore, we need to make the
mechanism deterministic but now we have a more difficult problem:
TERMINATION. How am I to know when B has finished updating x? See, as I
said in my earlier mail, this is more tricky than it may at first
appear.

Now the synchronous / asynchronous issue. I may have to concede that
common usage has corrupted these terms beyond what I find intuitive. My
bias comes from a presense in the microelectronics industry and having
very pedantic architects for company. The meaning usually applied to
"synchronous" is that, given a set of sequences the events in each
sequence behave in a lock step fashion. The term usually applies across
a system of identical sequences. "Asynchronous" is the inverse. So, we
can describe a set of parallel processes as behaving synchronously
(often applied to SIMD or VLIW architectures) or asynchronously (often
applied to MIMD). I hate using the same term to mean different things
and therefore I argue we should use the term "synchronized" not
"synchronous" to mean "blocking" and "non-synchronized" not
"asynchronous" to mean "non-blocking" when we discuss communication.

Steven

From owner-mpi-formal@CS.UTK.EDU  Mon Dec 14 14:05:05 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA20714; Mon, 14 Dec 92 14:05:05 -0500
Received: from localhost by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA11555; Mon, 14 Dec 92 14:04:55 -0500
X-Resent-To: mpi-formal@CS.UTK.EDU ; Mon, 14 Dec 1992 19:04:54 GMT
Errors-To: owner-mpi-formal@CS.UTK.EDU
Received: from relay1.UU.NET by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA11533; Mon, 14 Dec 92 14:04:52 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA01415; Mon, 14 Dec 92 14:04:50 -0500
Received: from kailand.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 140219.28072; Mon, 14 Dec 1992 14:02:19 EST
Received: from brisk.kai.com (brisk) by kailand.kai.com via SMTP
  (5.65d-92031301 for <mpi-formal@cs.utk.edu>) id AA18368; Mon, 14 Dec 1992 10:36:00 -0600
Received: by brisk.kai.com
  (920330.SGI-92101201) id AA00362; Mon, 14 Dec 92 10:35:59 -0600
Date: Mon, 14 Dec 92 10:35:59 -0600
Message-Id: <9212141635.AA00362@brisk.kai.com>
To: I.Glendinning@ecs.soton.ac.uk
Cc: mpi-formal@cs.utk.edu
In-Reply-To: Ian Glendinning's message of Thu, 10 Dec 92 17:49:00 GMT <9700.9212101749@holt.ecs.soton.ac.uk>
Subject: Blocking and synchrnous/ized behaviour
From: Steven Ericsson Zenith <zenith@kai.com>
Sender: zenith@kai.com
Organization: 	Kuck and Associates, Inc.
		1906 Fox Drive, Champaign IL USA 61820-7334,
		voice 217-356-2288, fax 217-356-5199


Ian,

Your description of the MeiKo usage is consistent with with my
understanding. The usage of synchronous and asynchronous refers to the
behavior of processes and events; synchronous behavior describes
processes taking part, collectively, in a single event; asynchronous
behavior describes the inverse. Blocking and Non-blocking are direct
analogs of synchronized and non-synchronized and more accurately
describe the case. I understand that this is a subtle point here and I'm
sure that some people will consider it overly pedantic, so I'd welcome
some other comments.

I'm trying to decide which of the current proposals we can begin to
consider for the specification process. I'm inclined to start with the
Lusk and Gropp implementation document the other documents I have seen
introduce too many uncertain concepts. Has anyone else read the
available documents?

Steven


From owner-mpi-formal@CS.UTK.EDU  Mon Dec 14 19:14:58 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA00850; Mon, 14 Dec 92 19:14:58 -0500
Received: from localhost by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA27785; Mon, 14 Dec 92 19:14:47 -0500
X-Resent-To: mpi-formal@CS.UTK.EDU ; Tue, 15 Dec 1992 00:14:38 GMT
Errors-To: owner-mpi-formal@CS.UTK.EDU
Received: from relay1.UU.NET by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA27777; Mon, 14 Dec 92 19:14:37 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA19399; Mon, 14 Dec 92 19:14:35 -0500
Received: from kailand.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 191323.29698; Mon, 14 Dec 1992 19:13:23 EST
Received: from brisk.kai.com (brisk) by kailand.kai.com via SMTP
  (5.65d-92031301 for <mpi-formal@cs.utk.edu>) id AA02632; Mon, 14 Dec 1992 17:38:27 -0600
Received: by brisk.kai.com
  (920330.SGI-92101201) id AA04629; Mon, 14 Dec 92 17:38:25 -0600
Date: Mon, 14 Dec 92 17:38:25 -0600
Message-Id: <9212142338.AA04629@brisk.kai.com>
To: I.Glendinning@ecs.soton.ac.uk, mpi-formal@cs.utk.edu
In-Reply-To: Steven Ericsson Zenith's message of Mon, 14 Dec 92 10:35:58 EST
Subject: Blocking and synchrnous/ized behaviour
From: Steven Ericsson Zenith <zenith@kai.com>
Sender: zenith@kai.com
Organization: 	Kuck and Associates, Inc.
		1906 Fox Drive, Champaign IL USA 61820-7334,
		voice 217-356-2288, fax 217-356-5199



Remember that typo I asked forgiveness for :-) This is it: in my earlier
mail I used general choice where I meant to use nondeterministic OR.
General choice is what the first Occam Alt I described maps on to.
The Lobelia is beginning to clear my head :-)

Steven


From owner-mpi-formal@CS.UTK.EDU  Thu Dec 17 12:32:58 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA02670; Thu, 17 Dec 92 12:32:58 -0500
Received: from localhost by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA09509; Thu, 17 Dec 92 12:32:51 -0500
X-Resent-To: mpi-formal@CS.UTK.EDU ; Thu, 17 Dec 1992 17:32:50 GMT
Errors-To: owner-mpi-formal@CS.UTK.EDU
Received: from sun2.nsfnet-relay.ac.uk by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA09501; Thu, 17 Dec 92 12:32:46 -0500
Via: uk.ac.southampton.ecs; Thu, 17 Dec 1992 17:32:17 +0000
Via: brewery.ecs.soton.ac.uk; Thu, 17 Dec 92 17:25:48 GMT
From: Ian Glendinning <I.Glendinning@ecs.soton.ac.uk>
Received: from holt.ecs.soton.ac.uk by brewery.ecs.soton.ac.uk;
          Thu, 17 Dec 92 17:26:52 GMT
Date: Thu, 17 Dec 92 17:33:24 GMT
Message-Id: <15485.9212171733@holt.ecs.soton.ac.uk>
To: mpi-formal@cs.utk.edu
Subject: Re: Blocking and synchrnous/ized behaviour

> From: Steven Ericsson Zenith <zenith@com.kai>

Steven,
       I'm replying to mpi-formal rather than directly to you, so you don't
get two copies of this message.

> Your description of the MeiKo usage is consistent with with my
> understanding. The usage of synchronous and asynchronous refers to the

I'm glad to hear that.

> describe the case. I understand that this is a subtle point here and I'm
> sure that some people will consider it overly pedantic, so I'd welcome
> some other comments.

Well, given that the draft proposal of Dongarra, Hempel, Hey and Walker
identified three of the possible four perumutations of the above, I think
people are aware of the possibilities.  I feel strongly that it is the job
of mpi-formal to set down clearly how the selected modes of communication
behave in these respects.  I don't think it is being pedantic to want to
know what your program actually does!

> I'm trying to decide which of the current proposals we can begin to
> consider for the specification process. I'm inclined to start with the
> Lusk and Gropp implementation document the other documents I have seen
> introduce too many uncertain concepts. Has anyone else read the
> available documents?

I have not seen the Lusk and Gropp document.  Could you e-mail me a copy?
(I assume it exists in machine readable form.)  The only one I have seen is
the one I already mentioned, by Dongarra/Hempel/Hey/Walker.
   Ian
From owner-mpi-formal@CS.UTK.EDU  Mon Dec 21 19:27:37 1992
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA23685; Mon, 21 Dec 92 19:27:37 -0500
Received: from localhost by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA16702; Mon, 21 Dec 92 19:27:26 -0500
X-Resent-To: mpi-formal@CS.UTK.EDU ; Tue, 22 Dec 1992 00:27:25 GMT
Errors-To: owner-mpi-formal@CS.UTK.EDU
Received: from sun2.nsfnet-relay.ac.uk by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA16694; Mon, 21 Dec 92 19:27:22 -0500
Via: uk.ac.southampton.ecs; Tue, 22 Dec 1992 00:27:18 +0000
Via: brewery.ecs.soton.ac.uk; Tue, 22 Dec 92 00:20:04 GMT
From: Ian Glendinning <I.Glendinning@ecs.soton.ac.uk>
Received: from holt.ecs.soton.ac.uk by brewery.ecs.soton.ac.uk;
          Tue, 22 Dec 92 00:20:44 GMT
Date: Tue, 22 Dec 92 00:27:40 GMT
Message-Id: <16320.9212220027@holt.ecs.soton.ac.uk>
To: mpi-formal@cs.utk.edu
Subject: Re: Life after CSP... and synchronous behavior.

> From zenith%kai.com%kailand@NET.UU.uunet Mon Dec 14 08:52:51 1992

Hi,
   yet again I've taken rather longer than I'd have liked to reply to
Steven's message, but there was a lot to reply to.  Here goes.

> There are several points here. Firstly the choice you describe in not a
> non-deterministic choice in the CSP sense. Occam has complex semantics
> here. What is incorrectly called an "alternation" in Occam (it should
> have been called "choice") wraps several CSP constructs into one -
> badly. Occam's
> 
> 	ALT
> 	  a ? x
> 	    P
> 	  b.in ? readx
> 	    b.out ! x

This looks a bit odd.  Was "readx" really meant to be just "x"?  I guess
it doesn't really matter to the point at issue, but it still reads oddly.

> is deterministic; i.e., the choice is knowable even though in the case
> where both input events occur simultaneously, the selection between them
> is non-deterministic. It is important to understand where the

I guess it's true that general choice reduces to vanilla choice in this
case, i.e.:

(c -> P [] d -> Q) = (c -> P | d -> Q)   if c <> d

and in that sense it it's deterministic.  I'm afraid I seem to have muddied
the waters by my loose use of terminology.  When I refered to "non-
deterministic choice", what I really meant was the [] operator, which I now
realise is properly called "general choice".  I've always called the other
operator "non-deterministic or" in the past (can't draw that one so easily...)

> non-determinism lies here - in the above case non-determinism only
> occurs in the selection of two simultaneous inputs. Whereas, the
> difficult Occam syntax
> 
> 	ALT
> 	  true & skip
> 	    P
> 	  true & skip
> 	    Q
> 
> describes a non-deterministic choice that in CSP is simply described as
> 
> 	P [] Q
> 
> [] being my representation of the CSP general choice operator.

I console myself that Steven got confused here too, as he later pointed out.
This should of course be

P n Q

where "n" means non-deterministic or (same as "non-deterministic choice"?).

> You are wrong. Firstly, || and ||| are not equivalent and the
> composition of two processes by interleaving does indeed permit use of
> the same variable since all events including such a variable are
> distinct by that interleaving. Secondly, even though the above only

Could you please elaborate?  What do you mean by "events including such
a variable"?  What does it mean for an event to include a variable?
Maybe you are justifying why it is ok for interleaved processes to
share variables, but surely this is just a matter of definition.  Is
this made explicit anywhere for CSP?  It certainly does not appear to
be done in the CSP book, where the restriction for the || operator is
imposed over and above its other properties.  There is no explicit
statement for the ||| operator.  One could interpret this either way.

> Now let us consider the case where we use a distinct process to model
> the behavior of x.
> 
> 	A || ( X:(c ! x -> X [] c ? x -> X) || B
> 
> So, I have a intermediary process that is recusively making a truely
> non-deterministic choice on each iteration. If this *is* the
                                              ^^^^^^^^^^^^
Well I think that is the key question!  I'd have been inclined to use two
separate channels, one in and one out - but then I'm just an old occam
hack ;-)

> specification then I can always chose to do the input OR the output;
> ergo I can optimize one or the other away and cause deadlock ;-) So you

Is this really the case?  If A or B tries to output a value on channel c
that is not the same as its current value then surely only the input
branch of the choice may be activated.

> did not mean nondeterministic choice. Therefore, we need to make the

No, I didn't.

> Now the synchronous / asynchronous issue. I may have to concede that
> common usage has corrupted these terms beyond what I find intuitive. My
> bias comes from a presense in the microelectronics industry and having
> very pedantic architects for company. The meaning usually applied to
> "synchronous" is that, given a set of sequences the events in each
> sequence behave in a lock step fashion. The term usually applies across
> a system of identical sequences. "Asynchronous" is the inverse. So, we
> can describe a set of parallel processes as behaving synchronously
> (often applied to SIMD or VLIW architectures) or asynchronously (often
> applied to MIMD). I hate using the same term to mean different things
> and therefore I argue we should use the term "synchronized" not
> "synchronous" to mean "blocking" and "non-synchronized" not
> "asynchronous" to mean "non-blocking" when we discuss communication.

It still doesn't sound like we're speaking the same language here.  We need
a total of four different words, and you seem to be saying we ditch
(a)synchronous completely and use (a)synchronized as a synonym for
(non)blocking, leaving us only two alternatives.  We must sort out some
terminology we can agree on the meaning of!
   Ian
From owner-mpi-formal@CS.UTK.EDU  Fri Feb  5 00:33:11 1993
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA29214; Fri, 5 Feb 93 00:33:11 -0500
Received: from localhost by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA27501; Fri, 5 Feb 93 00:32:04 -0500
X-Resent-To: mpi-formal@CS.UTK.EDU ; Fri, 5 Feb 1993 00:31:56 EST
Errors-To: owner-mpi-formal@CS.UTK.EDU
Received: from relay2.UU.NET by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA27482; Fri, 5 Feb 93 00:31:55 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA09369; Fri, 5 Feb 93 00:32:02 -0500
Received: from kailand.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 002918.13015; Fri, 5 Feb 1993 00:29:18 EST
Received: from brisk.kai.com (brisk) by kailand.kai.com via SMTP
  (5.65d-93012701) id AA09184; Thu, 4 Feb 1993 18:56:01 -0600
Received: by brisk.kai.com
  (920330.SGI-92101201) id AA05164; Thu, 4 Feb 93 18:56:00 -0600
Date: Thu, 4 Feb 93 18:56:00 -0600
Message-Id: <9302050056.AA05164@brisk.kai.com>
To: mpi-formal@cs.utk.edu, mpi-pt2pt@cs.utk.edu
Cc: 
Subject: Concerns.
From: Steven Ericsson Zenith <zenith@kai.com>
Sender: zenith@kai.com
Organization: 	Kuck and Associates, Inc.
		1906 Fox Drive, Champaign IL USA 61820-7334,
		voice 217-356-2288, fax 217-356-5199


I have to agree with Steve Otto and confess more than a little anxiety
at this end. It seems to me that we are much too concerned with being
all things to all men and I am absolutely convinced that a mix and match
philosophy is a recipe for disaster: not that it can't be implemented or
specified but purely from the usability point of view. We should be able
to provide more wizardly and wise power by providing less not more!

We would do better to ensure that the issues we address are those that
we all currently understand well or that we have time to defer to assure
ourselves that new forms or compositions are at least well concieved.
The latter is impossible in the six months we have allotted ourselves.

If we really want people to use MPI it has to be straight forward and at
least no more complex than existing systems.

If we can't decide on a *concise* set of wisely restricted forms for
send and recieve, if you really believe we have to provide all forms,
then I suggest this effort may be premature.

Steven



From owner-mpi-formal@CS.UTK.EDU  Fri Feb  5 00:33:11 1993
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA29213; Fri, 5 Feb 93 00:33:11 -0500
Received: from localhost by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA27513; Fri, 5 Feb 93 00:32:09 -0500
X-Resent-To: mpi-formal@CS.UTK.EDU ; Fri, 5 Feb 1993 00:32:08 EST
Errors-To: owner-mpi-formal@CS.UTK.EDU
Received: from relay1.UU.NET by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA27503; Fri, 5 Feb 93 00:32:05 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA05696; Fri, 5 Feb 93 00:32:02 -0500
Received: from kailand.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 002920.13036; Fri, 5 Feb 1993 00:29:20 EST
Received: from brisk.kai.com (brisk) by kailand.kai.com via SMTP
  (5.65d-93012701) id AA09357; Thu, 4 Feb 1993 19:11:45 -0600
Received: by brisk.kai.com
  (920330.SGI-92101201) id AA05200; Thu, 4 Feb 93 19:11:44 -0600
Date: Thu, 4 Feb 93 19:11:44 -0600
Message-Id: <9302050111.AA05200@brisk.kai.com>
To: mpi-formal@cs.utk.edu, mpi-pt2pt@cs.utk.edu
Cc: 
Subject: Composition.
From: Steven Ericsson Zenith <zenith@kai.com>
Sender: zenith@kai.com
Organization: 	Kuck and Associates, Inc.
		1906 Fox Drive, Champaign IL USA 61820-7334,
		voice 217-356-2288, fax 217-356-5199



What is the meaning of these sequential compositions?

1) two non-blocking sends to the same destination?
2) a non-blocking send and a blocking send to the same destination?
3) a non-blocking send and a broadcast?
4) two non-blocking receives?
5) a non-blocking receive and a blocking receive?

and so on ... I suspect different machine vendors may have different
views.

Steven
ps. mpi-formal members are refered to mpi-pt2pt.


From owner-mpi-formal@CS.UTK.EDU  Fri Feb  5 05:44:43 1993
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA12746; Fri, 5 Feb 93 05:44:43 -0500
Received: from localhost by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA18976; Fri, 5 Feb 93 05:44:25 -0500
X-Resent-To: mpi-formal@CS.UTK.EDU ; Fri, 5 Feb 1993 05:44:24 EST
Errors-To: owner-mpi-formal@CS.UTK.EDU
Received: from relay1.UU.NET by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA18968; Fri, 5 Feb 93 05:44:23 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA00876; Fri, 5 Feb 93 05:44:20 -0500
Received: from kailand.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 054326.7482; Fri, 5 Feb 1993 05:43:26 EST
Received: from brisk.kai.com (brisk) by kailand.kai.com via SMTP
  (5.65d-93012701) id AA16580; Thu, 4 Feb 1993 23:45:25 -0600
Received: by brisk.kai.com
  (920330.SGI-92101201) id AA06410; Thu, 4 Feb 93 23:45:23 -0600
Date: Thu, 4 Feb 93 23:45:23 -0600
Message-Id: <9302050545.AA06410@brisk.kai.com>
To: mpi-formal@cs.utk.edu, mpi-pt2pt@cs.utk.edu
Cc: 
Subject: Be brave. Be sure.
From: Steven Ericsson Zenith <zenith@kai.com>
Sender: zenith@kai.com
Organization: 	Kuck and Associates, Inc.
		1906 Fox Drive, Champaign IL USA 61820-7334,
		voice 217-356-2288, fax 217-356-5199


It will probably come as no surprise that I, for one, have no fear of
being politically incorrect in these matters ;-) I am not afraid to say
that I think at this stage it would be a very good idea to define only
process composition and blocking send/recv. The rest comes - more or
less - as a construction of the other two. Process ids are simply a many
to one channel descriptor - implementable by a single process,
non-synchronized communication is simply a process creation, broadcast
is a composition of N sends with N receives, and such an interface can be
implemented by all the available technologies.  In addition this
simplification would greatly aid the task of the poor programmer.

Where is the innovation in this forum? It seems that we are pandering to
the lowest common denominator. Has noone learnt anything in the past 7/8
years?

Otherwise we should simply take an existing system (PVM for example,
though there are many well designed MP systems) and adopt it as the
accepted standard, work from that point and be done with it.  The
interface efforts of the Unix community (e.g., DCE and sockets) may well
out run this one.

Steven




From owner-mpi-formal@CS.UTK.EDU  Fri Feb  5 06:07:04 1993
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA17736; Fri, 5 Feb 93 06:07:04 -0500
Received: from localhost by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA20552; Fri, 5 Feb 93 06:05:42 -0500
X-Resent-To: mpi-formal@CS.UTK.EDU ; Fri, 5 Feb 1993 06:05:41 EST
Errors-To: owner-mpi-formal@CS.UTK.EDU
Received: from marge.meiko.com by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA20403; Fri, 5 Feb 93 06:04:45 -0500
Received: from hub.meiko.co.uk by marge.meiko.com with SMTP id AA27476
  (5.65c/IDA-1.4.4); Fri, 5 Feb 1993 06:04:40 -0500
Received: from float.co.uk (float.meiko.co.uk) by hub.meiko.co.uk (4.1/SMI-4.1)
	id AA16231; Fri, 5 Feb 93 11:04:37 GMT
Date: Fri, 5 Feb 93 11:04:36 GMT
From: jim@meiko.co.uk (Paul Kelly)
Message-Id: <9302051104.AA16231@hub.meiko.co.uk>
Received: by float.co.uk (5.0/SMI-SVR4)
	id AA06680; Fri, 5 Feb 93 11:02:53 GMT
To: zenith@kai.com
Cc: mpi-formal@cs.utk.edu, mpi-pt2pt@cs.utk.edu
In-Reply-To: Steven Ericsson Zenith's message of Thu, 4 Feb 93 23:45:23 -0600 <9302050545.AA06410@brisk.kai.com>
Subject: Be brave. Be sure.
Content-Length: 896

Steve,

> I am not afraid to say that I think at this stage it would be a very
> good idea to define only process composition and blocking send/recv.
> The rest comes - more or less - as a construction of the other two.
> Process ids are simply a many to one channel descriptor -
> implementable by a single process, non-synchronized communication is
> simply a process creation, broadcast is a composition of N sends with
> N receives, and such an interface can be implemented by all the
> available technologies.

You just described occam. 

One thing I have learnt from the last 10 years is that that's NOT
ENOUGH.

-- 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: jim@meiko.co.uk   or    jim@meiko.com

From owner-mpi-formal@CS.UTK.EDU  Fri Feb  5 13:10:13 1993
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA09171; Fri, 5 Feb 93 13:10:13 -0500
Received: from localhost by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA16585; Fri, 5 Feb 93 13:09:45 -0500
X-Resent-To: mpi-formal@CS.UTK.EDU ; Fri, 5 Feb 1993 13:09:44 EST
Errors-To: owner-mpi-formal@CS.UTK.EDU
Received: from relay1.UU.NET by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA16577; Fri, 5 Feb 93 13:09:42 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA05018; Fri, 5 Feb 93 13:09:39 -0500
Received: from kailand.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 130848.19776; Fri, 5 Feb 1993 13:08:48 EST
Received: from brisk.kai.com (brisk) by kailand.kai.com via SMTP
  (5.65d-93012701) id AA04173; Fri, 5 Feb 1993 10:16:24 -0600
Received: by brisk.kai.com
  (920330.SGI-92101201) id AA07622; Fri, 5 Feb 93 10:16:22 -0600
Date: Fri, 5 Feb 93 10:16:22 -0600
Message-Id: <9302051616.AA07622@brisk.kai.com>
To: jim@meiko.co.uk
Cc: mpi-formal@cs.utk.edu, mpi-pt2pt@cs.utk.edu
In-Reply-To: Paul Kelly's message of Fri, 5 Feb 93 13:20:43 GMT <9302051320.AA16757@hub.meiko.co.uk>
Subject: Be brave. Be sure.
From: Steven Ericsson Zenith <zenith@kai.com>
Sender: zenith@kai.com
Organization: 	Kuck and Associates, Inc.
		1906 Fox Drive, Champaign IL USA 61820-7334,
		voice 217-356-2288, fax 217-356-5199


Thanks Jim (or is it Paul) for the name correction (via private mail)...

I know what I'm suggesting - and yes, though I hate to admit it, it is
the Occam model more or less. Though you shouldn't allow your distaste
for the language to deflect you from the qualities of it's communication
model. The inadequacies of that language are many but when it comes to
the communication model (CSP) it is fundamental. All I'm suggesting here
is that we do not make the other mistake, that of providing so much that
it is neither managable by us or our intended audience.

Either we are prepared to provide something better than currently exists
based on a good understanding of our collective experience with mature
concepts or we should start from an existing system, with all its flaws,
and work from there.  This is not a forum for invention.

I should qualify my comments to reiterate that in fact I am looking to
this forum to provide a consistent interface for low level
implementation in operating systems and code generation. I never want
any of my general purpose users using message passing as a means to
program machines. And if you gave me just processes and blocking send
and receive that *would* be enough.

As someone who has written many message passing programs (using Express
and other libraries, as well as Occam and CSP), and made it my business
over the years to talk to others who have, I have to tell you that the
fewer well conceived choices you give me the happier I am and, in my
experience, the user is.  I just don't believe those people who say we
have to provide every form - it is counter to all my experience with
users (no doubt, there are users here who will insist on being provided
with every variant ;-) - but you will have seen that manifestation
before. ).

One way to look for evidence to support or denounce this is to undertake
an investigation.  Find an array of *applications*, not systems tools
etc.  but "real" applications, and identify the subset of functionality
used.  My bet is that you will discover the subset is small, the place
where non-blocking communication is used is on machines where the
process model implementation is inadequate, and that code that does not
fit into my simple model is not readily portable.

Steven

From owner-mpi-formal@CS.UTK.EDU  Fri Feb  5 18:13:42 1993
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA14882; Fri, 5 Feb 93 18:13:42 -0500
Received: from localhost by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA04240; Fri, 5 Feb 93 18:13:16 -0500
X-Resent-To: mpi-formal@CS.UTK.EDU ; Fri, 5 Feb 1993 18:13:14 EST
Errors-To: owner-mpi-formal@CS.UTK.EDU
Received: from relay2.UU.NET by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA04230; Fri, 5 Feb 93 18:13:12 -0500
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA24058; Fri, 5 Feb 93 18:13:17 -0500
Received: from kailand.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 181248.24131; Fri, 5 Feb 1993 18:12:48 EST
Received: from brisk.kai.com (brisk) by kailand.kai.com via SMTP
  (5.65d-93012701) id AA01338; Fri, 5 Feb 1993 17:10:16 -0600
Received: by brisk.kai.com
  (920330.SGI-92101201) id AA08601; Fri, 5 Feb 93 17:10:15 -0600
Date: Fri, 5 Feb 93 17:10:15 -0600
Message-Id: <9302052310.AA08601@brisk.kai.com>
To: mpi-formal@cs.utk.edu, mpi-pt2pt@cs.utk.edu
Cc: 
In-Reply-To: Steven Ericsson Zenith's message of Fri, 5 Feb 93 10:16:22 EST
Subject: Be brave. Be sure.
From: Steven Ericsson Zenith <zenith@kai.com>
Sender: zenith@kai.com
Organization: 	Kuck and Associates, Inc.
		1906 Fox Drive, Champaign IL USA 61820-7334,
		voice 217-356-2288, fax 217-356-5199


     From: srwheat@cs.sandia.gov (Stephen R. Wheat)

     ... But, while they continue to
     wait, their livelyhoods depend upon their ability to get
     the best performance from these MP beasts as possible.
     Even assembly language is still a useful tool for them,
     case in point: tuned libraries where interfaces are defined
     but the library code is certainly not portable.

The fact that your users are programming using message passing suggests
that they are certainly also prepared to use assembler when necessary.
The reason they use MP is the same reason they use assembler at times:
there is no higher level way currently to achieve what they want with
the performance they require on the machines they are using. ;-) Evenso,
when I've asked people (physicists and so on) with some experience
programming such machines this question they have confirmed that they
use MP as reluctantly as they use assembler - it's just that sometimes
it's unavoidable. Some of those people are at Sandia. I certainly would
not want to deprive them of their lively hood and there are exceptions -
of course.  Some people really enjoy the challenge of writing MP code,
just as they enjoy the challenge of writing assembler - me too at times
;-)

But the pro's and con's of message passing as a programming model, and
the alternatives, are not the issues here. While we may have different
motivations we do all understand the importance of MP at some level.
Certainly it should be usable by "users" in the absence of anything
better. In fact I'd contend that my recent calls serve those that do
have to use it well - wizard or not.

I am not calling for us to take power away from users - on the contrary
- I'm calling for greater utility and usability through simplicity. I am
calling for us to focus on things we understand well and to avoid
invention. I do not feel that such simplicity will fail to serve wizards
- your implication is that wizards are only attracted to complexity:
this surely is not true.

    In addition, it is my opinion that there is way too little
    experience with compiler generated messaging to have such
    a concept meet the "maturity/experience" criteria upon which
    we wish to base MPI.

No argument here - but then this isn't an objective of MPI.

    As for overlapped messaging, I dare say that EVERY code here ...

I am not saying that non-synchronizing send is a "bad thing" - I am
saying there is a simpler way of looking at these things. Define the
fundamentals and work from there. We have been arguing about the nuances
of buffer behavior without getting a real feel for our base objectives.
You can build all you want - if you really want it - with fundamental
and well understood components - it makes a great opportunity for third
party software vendors like Parasoft and DSL. Buffering characteristics
are likely to remain a choice based on hardware design and we should
leave such things alone in our interface design.

Now I understand that most machine vendors have a variety of approaches
- and that is exactly why we should should be careful. But I cannot
believe the solution for MPI is the union of those approaches - though
it may be some component of the intersection.

Isn't our objective to provide a Message Passing Interface that will
allow people who want to write portable (or transportable) MP code to do
so? And to provide for compiler writers and architects - people like me
- who are just looking for a consistent interface on MP machines?
Doesn't usability have a right to be at the fore of our concerns?  If
this is the case then we do need some well conceived abstraction or we
must adopt an existing system and refine it. When it comes right down to
it, I really don't mind which.

I would like though to take a program written in MPI and simply
transform it into another MPI program for execution on a machine with
different characteristics. What I've seen so far is going to make it
very very hard to do that. I'm only likely to want to do literal
translation on a machine identical to the original target - it would be
nice to permit simple transformations and checking (for deadlock for
example) ... wouldn't it?

Incidently, in addition to my architects point of view I do still
design message passing systems and program them - so I hope I qualify as
a user too. ;-) 

Steven



From owner-mpi-formal@CS.UTK.EDU  Sun Feb  7 23:04:51 1993
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA12670; Sun, 7 Feb 93 23:04:51 -0500
Received: from localhost by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA25212; Sun, 7 Feb 93 23:04:28 -0500
X-Resent-To: mpi-formal@CS.UTK.EDU ; Sun, 7 Feb 1993 23:04:27 EST
Errors-To: owner-mpi-formal@CS.UTK.EDU
Received: from antares.mcs.anl.gov by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA25204; Sun, 7 Feb 93 23:04:26 -0500
Received: from donner.mcs.anl.gov by antares.mcs.anl.gov (4.1/SMI-GAR)
	id AA08906; Sun, 7 Feb 93 22:04:24 CST
Received: by donner.mcs.anl.gov (4.1/GCF-5.8)
	id AA01757; Sun, 7 Feb 93 22:04:22 CST
Message-Id: <9302080404.AA01757@donner.mcs.anl.gov>
To: mpi-formal@cs.utk.edu
Subject: Activities of the Formal Methods subcommittee
In-Reply-To: Your message of "Fri, 05 Feb 93 17:10:15 CST."
             <9302052310.AA08601@brisk.kai.com> 
Date: Sun, 07 Feb 93 22:04:21 CST
From: Rusty Lusk <lusk@antares.mcs.anl.gov>

Dear Formal Subcommittee, particularly Steven:

I have been trying without much success to educate myself in the area of
formal standards.  I found an article in IEEE Software (September, 1990) that
seems to apply to us, "The Case for Formal Methods in Standards".  Here is a
relevant paragraph:

    The introduction of formal methods can be achieved only through education.
    Appreciating the need for a gradual migration toward a fuller use of
    formal methods, the International Standards Organization has recommended a
    three-phase plan to introduce formal methods into standards:

    In phase 1, where the use of formal methods is restricted due to lack of
    expertise, their use should be encouraged as a parallel activity to
    formulating the standard in a natural language.  Insights gained from the
    formalization may contribute to the quality of the standard by, for
    example, improving error detection.

The MPI committee as a whole certainly seems to be in this situation ("use of
formal methods is restricted due to lack of expertise"), and certainly I
myself am.  So I think our job should be primarily to demonstrate the use of
formal methods to clarify what the committee is considering, rather than try
to direct it.  (Here I am really just following Steven's first posting on this
subcommittee mailing list.)

The minutes of the last meeting give a pretty good indication of what level
the committee is thinking of.  I myself am certainly one of the ones arguing
for including a lot into the standard.  It seems to me that formal methods
should be of great use, although I have no experience with them whatever.

Here's what would help me a lot:

Could someone in this group who does have some of this experience demonstrate
how one would specify the three different send operations that we more or less
settled on in the straw votes at the last meeting?  These are:

  a send that blocks until its buffer can be reused (the message has been
      delivered to the network)
  a send that doesn't block at all (you execute a wait later, which waits 
      until the message has been delivered to the network)
  a "synchronized" send that blocks until the receiver has copied the 
      message off the network into its local memory

Regardless of what eventually appears in the standard, these are the kinds
of things that we are talking about and I, for one, would be very interested
in seeing formal specification demonstrated on just these three operations.
This is also the sort of thing I said the formal methods subcommittee would
do before the next meeting.

CSP I have heard about.  More recently I have found that many people use Z.
There is also something called ASLAN, and apparently the POSIX people have
invented something called LIS for doing this sort of thing.

Does anyone have any experience with any of these?  It would be nice if the
above exercise could be carried out in more than one language, for
comparison's sake.

Regards,
Rusty
From owner-mpi-formal@CS.UTK.EDU  Wed Feb 10 16:46:05 1993
Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34)
	id AA04980; Wed, 10 Feb 93 16:46:05 -0500
Received: from localhost by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA24088; Wed, 10 Feb 93 16:45:41 -0500
X-Resent-To: mpi-formal@CS.UTK.EDU ; Wed, 10 Feb 1993 16:45:40 EST
Errors-To: owner-mpi-formal@CS.UTK.EDU
Received: from ssdintel.ssd.intel.com by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK)
	id AA24080; Wed, 10 Feb 93 16:45:38 -0500
Received: from tualatin.SSD.intel.com by SSD.intel.com (4.1/SMI-4.1)
	id AA14891; Wed, 10 Feb 93 13:45:36 PST
Date: Wed, 10 Feb 93 13:45:36 PST
Message-Id: <9302102145.AA14891@SSD.intel.com>
Received: by tualatin.SSD.intel.com (4.1/SMI-4.0)
	id AA03909; Wed, 10 Feb 93 13:45:33 PST
From: Bob Knighten <knighten@SSD.intel.com>
Sender: knighten@SSD.intel.com
To: mpi-formal@cs.utk.edu, mpi-lang@cs.utk.edu
Subject: POSIX LIS
Reply-To: knighten@SSD.intel.com (Bob Knighten)

As part of the POSIX work a "Draft TCOS-SSC Technical Report -- Programming
Language Independent Specification Methods" was written.  This  has served as
the basis for the language independent specification of the various system
interfaces that have been developed.  This is *NOT* a formal specification
method, but has as its purpose "to assist and coordinate the development of
functional specifications and language bindings by defining an abstract
model, and providing guidelines for the use of that model in the
development of new functional specifications, the dirivation of a base
standard from an existing language binding, and the development of new
language bindings to a functional specification."

"The model is primarily intended for use in developing language-independent
specifications for operating system and related services, and language
bindings for procedural programming languages."

[The quotation is from the Scope and Purpose of the report.]

This guide was never completely finished and Paul Rabin (OSF), the
principal author, recommends that it be used in conjunction with the
P1003.1LIS which provides a very large example.

Paul Rabin expects that some extensions to the current guide will be
necessary for MPI, just as extensions will be necessary for the POSIX
Real-Time and Threads work.  He is interested in working with us to develop
common extensions.

I can provide copies of the POSIX LIS and both the P1003.1 LIS and the
P1003.16 C binding to the P1003.1 LIS as well.  [P1003.1LIS is about 380
pages and P1003.16 is about 300 pages so I don't want to drop these books
on people unless they are actually desired.]

A formal specification of MPI is quite desirable, but I am doubtful that we
can achieve it in the time we have available.  A language independent
specification of the sort developed within POSIX is, I believe, essential
to provide the common base for all of the language bindings we wish to
provide.  

-- Bob

Robert L. Knighten	             | knighten@ssd.intel.com
Intel Supercomputer Systems Division | 
15201 N.W. Greenbrier Pkwy.	     | (503) 629-4315
Beaverton, Oregon  97006	     | (503) 629-9147 [FAX]
