[comp.parallel] Mark Miller's S- and M-Linda

carriero@YALE.EDU (Nicholas Carriero) (05/08/89)

Mark Miller writes--

  M-Linda probably does satisfy all the criteria as well as Actors &
  CLP (it's hard to know, only having seen an in-depth description of
  S-Linda).  In M-Linda used for open systems, each tuple space
  individually would correspond to a trust boundary.  Therefore, with
  regard to open system properties, we can regard all compuation
  proceeding inside a single tuple space as a single agent.  ...

  Assuming my description of M-Linda is reasonably accurate, then the
  computational model of M-Linda among these macro agents isn't that
  different for Actors (a tuple space is like a mailbox) or CLP (a tuple
  space is like a logic variable).  As Ken points out, this M-Linda
  would have many of the "flaws" of which the Linda folk accuse message
  passing systems & CLP languages.

We can accept the first paragraph but not the second.  Mark's
description of M-Linda captures the flavor of what we have in mind
quite accurately.  (The details require too much space for posting,
but for anyone who's interested, our multiple-ts paper will appear in
PARLE 89.)  Multi-Linda has strong support for modularity.  But this
scarcely means that it reduces to Actors or CLP.  When I "out" to a
specified tuple space rather than to the global space, I'm narrowing
the space of possible recipients for this tuple.  But this does NOT
mean that I'm sending the tuple to some particular process or Actor.
Ten thousand servers may all have rights to pick up this kind of
tuple; one generation of server processes may die out and be replaced
by a different set; tuples directed to the server may be incorporated
in a distributed data structure which is built cooperatively by many
clients and consumed by many servers; the tuple space may be
transparently replaced by a file (i.e. a persistent tuple space) and
only examined much later, & so on.  This sub-tuple space, in other
words, retains all the properties of anonymous and uncoupled
communication that we consider indispensable.  But, so long as access
to the "server" tuple space is restricted, we can achieve any kind of
modularity and security we want.

  If the Linda people are effectively arguing that S-Linda is superior
  to Actors & CLP for parallel programming in the small & medium, while
  M-Linda gives you the good properties of Actors & CLP in the large (at
  the "costs" of Actors & CLP) that would indeed be an interesting and
  significant argument.  It would however concede Ken's initial point
  about uniformity.

We're arguing rather that M-Linda gives you the good properties of
S-Linda in the large, plus modularity.  We have already conceded Ken's
initial point, in spades.  Linda's model of parallelism rejects
uniformity with any given base language in order to achieve a unified
model of coordination in general.  (Our first talk to incorporate this
emphatic acceptance of Ken's point was at Apple & happens to have been
attended by Ken, who will vouch for it.)  But there's no
non-uniformity between S-Linda & M-Linda.  Linda's structured name
space has ALWAYS supported the creation of tuple sub-pools; this is
basic to Linda programming.  But these sub-pools are still tuple
spaces, NOT processes -- that's the crucial point.

Nick & Dave