[net.ai] data flow computers and PS's

JAY@USC-ECLC@sri-unix.UUCP (07/28/83)

From:  Jay <JAY@USC-ECLC>

(more speculation)

 There has been some developement of computers suited to certain  high
level languages, includeing  the LISP machines.   There has also  been
some research  into non-Von  Neuman machines.   One  such  machine  is
the Data Flow Machine.

  The data flow machine differs from the conventional computer in that
ALL  instructions  are  initiated  when  the  program  starts.    Each
instruction waits  for  the  calculations yeilding  its  arguments  to
finish before it finishes.

  This machine seems,  to  me,  to be  ideally  suited  to  Production
Systems/Expert Systems.   Each  rule would  be  represented as  a  few
instructions (the IF part of the  production) and the THEN part  would
be represented by the completion of  the rule.  For example, the  rule
(Month-is-june AND Sun-is-up) ->  (Temperature-is-high) would be coded
as:

Temperature-is-high:    AND
                       /   \
                     /       \
                   /           \
          (Month-is-june)   (Sun-is-up)

  Where (Month-is-june) and (Sun-is-up) are represented as either
other rules, or as data (which I assume completes instantly).

j'

pollack@uicsl.UUCP (08/16/83)

#R:sri-arpa:-360300:uicsl:15500002:000:954
uicsl!pollack    Aug 15 19:27:00 1983

The nodes in a data-flow machine, in order to compute efficiently, must
be able to do a local computation.  This is why arithmetic or logical
operations are O.K. to distribute.  Your scheme, however, seems to
require that the database of propositions be available to each node, so
that the known facts can be deduced "instantaneously". This would cause
severe problems with the whole idea of concurrency, because either the
database would have to be replicated and passed through the network, or
an elaborate system of memory locks would need to be established.

The Hearsay system from CMU was one of the early PS's with claims to
a concurrent implementation. There is a paper I remember in IEEE ToC (75
or 76) which discussed the problems of speedup and locks.

Also, I think John Holland (of Michigan?) is currently working on a
parallel PS machine (but doesn't call it that!)


Jordan Pollack
University of Illinois
...!pur-ee!uiucdcs!uicsl!pollack

sts@ssc-vax.UUCP (Stanley T Shebs) (08/17/83)

A concurrent PS is not too impossible, 'cause I've got one
(specialized for NL processing and not actually implemented
concurrently, but certainly capable).  It is true that
the working memory would have to be carefully organized,
but that's a matter of sufficiently clever design; there's
no fundamental theoretical problems.  Traditional approaches
won't work, because two concurrently operating rules may
come to contradictory conclusions, both of which may be valid.
You need a way to store both of these and use them.

					stan the leprechaun hacker
					ssc-vax!sts (soon utah-cs)