Path: utzoo!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!think.com!barmar From: barmar@think.com (Barry Margolin) Newsgroups: comp.lang.lisp Subject: Re: parallel lisp Keywords: info wanted Message-ID: <1991Mar8.172014.9920@Think.COM> Date: 8 Mar 91 17:20:14 GMT References: <13658@medusa.cs.purdue.edu> <1991Mar5.215242.12812@bilver.uucp> Sender: news@Think.COM Organization: Thinking Machines Corporation, Cambridge MA, USA Lines: 30 In article <1991Mar5.215242.12812@bilver.uucp> dandrews@bilver.uucp (Dave Andrews) writes: >The one that comes to my mind was the one described in Danny Hillis' >dissertation, "The Connection Machine". They have a list variant >called a "xector", in which each element is processed simultaneously >by a processor on the CM. I don't remember if it is very CL compliant. You are describing CM Lisp. It is completely CL compliant, because it is simply an orthogonal extension to CL. Unfortunately, it was never implemented fully, as far as I know. CM Lisp was a very ambitious design, because it abstracted a good deal away from the Connection Machine hardware, and expected many Common Lisp primitives to deal with xectors directly. Instead, what we implemented was *Lisp, which is much closer to the CM architecture, and requires programmers to use a separate set of constructs for dealing with "pvars" (parallel variables) and parallel operations. Functions that accept pvars are generally named !! and map the CL function over the elements of the pvars (e.g. +!!); global and control constructs are generally named *, where is the corresponding CL operator (e.g. *IF, *SUM). Gary Sabot developed Paralation Lisp as part of his dissertation. I believe his book "The Paralation Model" includes a disk with a simulator on it. -- Barry Margolin, Thinking Machines Corp. barmar@think.com {uunet,harvard}!think!barmar