[comp.parallel] Answer to Kammeyers Reply to A Linda Question

snykanen@cs.Helsinki.FI (01/09/91)

In article <12486@hubcap.clemson.edu> tkammeye@sdcsvax@ucsd.edu (Thomas
E. Kammeyer) writes:

>My version of the "C-linda Reference Manual" says: (section 3.4, page 19)
>	"A given tuple is evaluated and then added to tuple space with
>	the out() operation.  Once the tuple has been added, the executing
>	process continues immediately."

Your version of C-Linda is only one implementation of Linda-model.
The point of my question was that is there an exact definition of
out-operation at the level of a MODEL. The semantics of out-operation
has been interpreted in different ways. Susanne Hupfer writes however
following:

"According to the semantics of current Linda, out(t) inserts an
evaluated tuple t into tuple space. out in non-blocking: an out
operation completes, and passes control to the next instruction, with no
assurance that the out'ed tuple has already been installed in tuple
space. The out semantics only guarantees that the tuple will eventually
be installed in tuple space." (from Melinda: Linda with Multiple 
Tuple Spaces, YALEU/DCS/RR-766, February 1990, page 32)

"Original" Linda did not have inp- and rdp-operations, so the
non-blocking nature of out did not cause any problems. When inp and rdp
was added to Linda, the semantics of out (in the level of a model) was
not, according to text above, reconsidered.

The current situation is that the semantics of
out- and eval-operations has been interpreted in different ways.
Zenith referenced in "Linda "definition" :Zenith replies 2.5" to
report by James Names, where he writes that 
"...There are four basic types of process creation used in {\em eval}
  implementations; a given C-Linda implementation may use more than one."
I have not yet read that report (it is not yet available here), but I
have also realized that the semantics of eval can be interpreted in
different ways.

When portability is emphasized, it would be important to have
exact definitions. Every implementor (even without knowing
about each other) could then follow the same semantics and 
programs would run without no changes in other implementations.
It would also be easier to make programs for heterogenous network, if
you can be sure that the semantics of the operations are same in
every machine. 

Lindas portability is however emphasized if many articles, see
for example "Linda, the Portable Paralle" by Bjornson, 
Carriero, Gelernter and Leichter.

Silja Nykanen