[net.lang.prolog] Sequentiality of unification vs. parallel Prolog

bts@unc.UUCP (Bruce Smith) (11/17/85)

I'm posting the following for someone in our department:

     There are those who claim that since unification is
     "inherently sequential" that "PROLOG would not be a
     good candidate for a parallel programming language."
     (Quote from D. Mizell's article in ZeroOne Supernet.)
     Similar statements have been made on various mailing
     lists and newsgroups.

     If arithmetic operations were inherently sequential,
     would anyone claim that any language using arithmetic
     would not be good for parallel programming? I don't
     recall anyone stating that a particular parallel
     machine was good because it added n-bit integers in
     time O(log n).

Comments?
_____________________________________________________
Bruce T. Smith              Dept. of Computer Science
USENET: decvax!mcnc!unc!bts New West Hall (035-A)
Others: bts.unc@CSNET-RELAY Chapel Hill, NC 27514

debray@sbcs.UUCP (Saumya Debray) (11/21/85)

> I'm posting the following for someone in our department:
> 
>      There are those who claim that since unification is
>      "inherently sequential" that "PROLOG would not be a
>      good candidate for a parallel programming language."
>      (Quote from D. Mizell's article in ZeroOne Supernet.)
>      Similar statements have been made on various mailing
>      lists and newsgroups.
> 
> Comments?

There's more to parallel problem solving than unification.
This is probably a rehash of familiar material to most
people reading this newsgroup, but: the basic kinds of
parallelism one might expect to see in a problem solving
(logic programming, if you will) environment arise from
the parallel traversal of alternative paths in a search
space (OR parallelism), and the parallel solving of a
number of subproblems (AND parallelism).  These can be
subdivided further to what various authors have called
"lookup parallelism", "stream parallelism", "pipeline
parallelism", etc.  Notice that the granularity of
parallelism here is considerably higher than the level
of unification.  Therefore, these sources of parallelism
can be exploited independently of the properties of
underlying unification algorithms.

I agree, though, that *PROLOG* (the name of a particular
programming language, which assumes a certain textual
ordering over clauses and literals in its resolution
strategy, and contains hairy features like the cut) might
not be particularly suitable as a parallel programming
language.  (I know I'm being nitpicky, but I find the
tendency to blur the distinction between a particular
programming language and a class of languages confusing and
irksome.)
-- 
Saumya Debray
SUNY at Stony Brook

	uucp: {allegra, hocsd, philabs, ogcvax} !sbcs!debray
	arpa: debray%suny-sb.csnet@csnet-relay.arpa
	CSNet: debray@sbcs.csnet