Connection Machine Lisp (1986)
dl.acm.org
dl.acm.org
> Nevertheless, we have implemented (on a single-processor system, the Symbolics 3600) an experimental version of Connection Machine Lisp with lazy xappings and have found it tremendously complicated to implement but useful in practice.
I think there is a moral here: Don't hesitate to experiment with crazy ideas (lazy xappings), and don't be afraid to openly talk about those experiments.
After eight years of development, I can definitely confirm that lazy arrays/xappings are tremendously complicated to implement but useful in practice :)
Something that only recently is starting to take shape in compute landscape.
Petalisp looks cool.
[1] https://github.com/marcoheisig/Petalisp/blob/master/code/cor...
Years ago I attempted to take a stab at implementing this language on CUDA I called hillisp [3] but at the time Dynamic Parallelism didn't exist yet and my available hardware was pretty weak, but it was fun to learn more about CUDA which was relatively early technology at the time.
[1] https://www.youtube.com/watch?v=Ua-swPZTeX4
[2] https://www.amazon.com/Connection-Machine-Press-Artificial-I...
I have always been just a programmer but I have worked with hardware people who designed fast, for the time, hardware for me to run backprop neural networks in the 1980s. Fast forward to modern times and I am fascinated by projects like Groq that greatly speed up LLM inferencing.
Similarly Hillis has created or touched many fascinating projects in his career.
I'm not sure what this means. C* and CM Fortran weren't particularly low-level, unless C or Fortran 90 are "significantly low-level". For low-level fun, you'd drop to Paris (or to CMIS for "breathtakingly heart-stoppingly low-level").
For the curious, a great archive of documentation for stuff that actually shipped is here: https://people.csail.mit.edu/bradley/cm5docs/
This reminds me of an interesting talk by David Beazley where he discuss the early days of Python, when IIRC he was a student at a national lab, and they managed to run the Python REPL in an connection machine 5 that people had a hard time programming in lower level languages. It seems the work they did back then, writing modules that allowed the Python interpreter to interoperate with scientific code was one of the foundations for it to snowball many years later.
So I wonder if what this paper describes had shipped in time, if that would lead us by butterfly effect into the alternative timeline where Lisp dominates scientific computing, instead of Python.
And as REPL for CERN libraries, instead of ROOT.
Unfortunately while Python has taken over Lisp's domain, we are still far from Lisp capabilities to generate native code.
EDIT: CMT docs are still around, https://twiki.cern.ch/twiki/bin/view/Main/LearningAthena
That many use cases today are both highly-parallel and pipelined make me think the old designs might work. Also, the hundreds of thousands of execution units in Cerebras’ hardware are a similar concept.