Hacker News new | comments | show | ask | jobs | submit login
Getting Started in *Lisp (1991) [pdf] (mit.edu)
75 points by eudox on Aug 27, 2014 | hide | past | web | favorite | 19 comments



For context, *Lisp (pronounced "star Lisp") was a parallel programming extension to lisp on the Connection Machine System, which was a series of supercomputers. The front-end machine for talking to the CM was either a Unix box or a Symbolics Lisp machine.

http://en.wikipedia.org/wiki/Connection_Machine


Do you know how similar the Connection Machine was to a modern GPU? The descriptions I've seen sound similar, but I don't really know enough to say how similar.


Thanks. How do current Lisps (CL, Racket) compare to *Lisp on parallelism?


They aren't targeting similar hardware, so aren't very similar. The constructs introduced by *Lisp are designed mainly for issuing SIMD-style instructions to a grid of 256+ processors (in some versions, 10k+).


Another Lisp variant developed for the Connection Machine was the cleverly named "Connection Machine Lisp":

http://diyhpl.us/~bryan/papers2/paperbot/25aa007a093cd69bbf0...

The paper on it by Steele and Hillis is well-worth reading, as the language's fundamental mechanism of parallelism bears more than a passing resemblance to the MapReduce of 20 years later.


Hillis & Steele also wrote up many of the same ideas in a non-Lispy way. "Data Parallel Algorithms" http://cva.stanford.edu/classes/cs99s/papers/hillis-steele-d...


For comparison, what are the other possibilities for parallelism? MapReduce seems the obvious obvious one.


My impression was that MapReduce isn't so much parallelism itself, but rather a way of organising the execution of a programme to take advantage of parallel processors. (Maybe this is a meaningless distinction; I have never written (intentionally) parallel code, and am not familiar with the terminology.) In that sense, Apple's GCD (https://en.wikipedia.org/wiki/Grand_Central_Dispatch) is another well known possibility—one of, presumably, many.


Wow, a trip down memory lane!

I used Star Lisp to program a Connection Machine 1 (the SIMD one) in the 1980s.

I could run the simulator under Coral Common Lisp on my original Macintosh, so, development was very nice since I didn't have easy access to the DARPA provided CM-1 (I had to fly to another city to access it).


Here is the code for the simulator: https://github.com/g000001/Starlisp-simulator


I noticed that the PDF manual was dated 1991. I must have been using an early version of the system since I think I programmed for the CM-1 in 1989.



The owner of the manual is also an interesting person.

He has been involving in Cilk, Akamai and Tokutek.


Yes, and was my high school teacher and robotics coach :) Wonderful fellow!

EDIT: I take that back. Perhaps this is his brother.


Sadly, MESS (mess.org) does not emulate a CM-1 yet ;-)


Emulating the CM hardware does not make much sense. CM-1 and CM-2 are not real computers but essentially hardware accelerators as all the brains are inside the front-end system. CM-1 and CM-2 architecture can be described as very wide configurable ALU or as FPGA turned inside-out (the CM-1/2 "processor" is mostly same thing as one macrocell in FPGA, with the important difference that CM processor has different configuration for each clock cycle).

So emulating the hardware itself is not especially interesting as there is no real software for it (because it does not run standalone programs).


Well... The front-end was usually a VAX, right? (as remembered from articles on the CM-1)


or a Symbolics Lisp Machine


I believe someone had a working 3600 software emulation. From there, it's just adding the CM emulation as if it were a peripheral.

That and finding the install tapes ;-)




Applications are open for YC Winter 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: