The Connection Machine (1985) [pdf]
dspace.mit.edu
dspace.mit.edu
Connection Machine CM-2 Technical Summary (PDF)
http://people.csail.mit.edu/bradley/cm5docs/nov06/Connection...
The Essential StarLisp Manual, with Programming Examples for the Connection Machine (PDF)
https://omohundro.files.wordpress.com/2009/03/omohundro86_th...
Getting Started in StarLisp (PDF)
http://people.csail.mit.edu/bradley/cm5docs/nov06/GettingSta...
http://longnow.org/essays/richard-feynman-connection-machine...
The reason for doing something so different & risky like Thinking Machines Corp is to try to create those ripple effects. Well, build and dominate a market is number 1 but government funders trying to get ahead wanted ripples as a backup. They got it, too. Also, the machine could pull off amazing stuff [1] with its architecture. Similar one's using 8-bitters piled into a chip were used for neural networks. One could probably re-created benefits of Thinking Machines same way for the problems that suited it.
[1] http://kk.org/mt-files/outofcontrol/ch15-d.html
https://monoskop.org/images/d/d4/Roland_Alex_Shiman_Philip_S...
Note: The book is well-worth skimming through given how it documents how modern computing practices formed. I had never heard of SCI. I thought the stuff was unrelated but turns out it was all connected. Documents lots of attempts, justifications, policy effects, etc. Gold mine.
Lessons form the history https://twitter.com/ontouchstart/status/764790460900581376
I feel like junior people should be given a tour of the greatest hits from the past when they start in industry.[1]
1. So they can judiciously steal the good ideas later on in their careers.
It is really sad the state of culture transfer in our industry.
But yeah, I guess you're right. :)
If Moore's law really is ending I could see that changing.
But there is a second order effect, maybe a lot of that cultural history was lost before SIMD really caught on, but in general I think we gain quite a bit of collective experience by pushing the state of the art.
OTOH, maybe since games ended up driving the development, and HPC ended up trying to adapt their workloads to those platforms, you could argue that it was wasted effort.
But to echo my earlier comment, programming models to easily exploit substantial concurrencies is where the real sugar is.
Far as Thinking Machines comment, I answered that one here:
Another example is the Automata processor that similarly represents protocols in an ideal way. Check it out. Crazy efficient in a way you can only do with atypical, hardware-level thinking.
Not to mention entire FPGA ecosystem that accelerates algorithms faster than Moore's Law systems while their own hardware is less efficient & cost more. :)
Lots of the features we take for granted in commodity tech originated in something exotic.
> The BlueField family of SoC devices integrates an array of 64-bit ARMv8 A72 cores interconnected by a coherent mesh network
Looks like modern Connection Machine, right?
The CM was a SIMD, and each processor has its own independent memory. A Sun workstation submitted the (single) stream of instructions to the array of processors.
Having a 64K wide SIMD seems completely nuts, though since the processors are single bit, so if you're dealing with 64 bit values, that is "only" 1024-way SIMD. Which is still pretty nuts.
If you declared a 64-bit value, it went "down" each processor's memory, so that it would still be 64K values.
Interestingly, you could ask the machine to consider itself as having twice the CPUs (each with half the memory) and so have 128k, 256k, etc. processors.
Ah, come to think about it, if you had the floating-point accelerator chips, you could program it "slice-wise", which was kind of what you're talking about. Our CM-2 didn't have them, so I never did it, so... ask someone else :-)
The generally accepted narrative is that TMC upper management really screwed up. More tactically the CM-5 really stumbled, with a host of hardware, system software, compiler and environment problems. Right before they folded it was starting to be a really nice platform to use. But very expensive, and the 2-3 years from the CM-2 to that point were quite dark.
If you look at the Cray machines from the last 5-10 years they are pretty similar to the CM-5 - fat tree-like guaranteed delivery message network with credits - commodity processors and the primary node type - attached vector processors - front end nodes running commodity OS
of course there are lots of subtle differences, but if you squint...of course the language environments aren't the same (except of course for parallel fortran :/)
Also, see the Inc. article about why they went out of business... it was REALLY bad arrogance about what markets to try to work. They categorically refused to do anything for "ordinary" business problems.
Karl Sims developed an art installation using algorithms to evolve images based on user selections. It was to see for example in Paris at the Centre Pompidou.
As you can see on his page, the installation used a bunch of color graphics screens, a Connection Machine (2^15 processors). You can see the machine on the top image on the right. The actual software was written in Starlisp:
http://www.karlsims.com/genetic-images.html
Karl Sims gives a demo: https://vimeo.com/7723361
Karl also studied particle systems using a CM-2:
Having a super computer in an art museum was a really powerful statement. (But I was probably more impressed by the whole thing that by the resulting generated images)
It was a brief period at Pompidou when they would, regularly, present computer based works, at the frontier between art and science. (The series was called "revue virtuelle", virtual review)
That was probably due to the CM's more impressive blinkenlights: https://youtu.be/BVtHh9JoS3s?t=2m20s
The rest of the video seems pretty interesting as well, it looks like a 10 minute intro to the CM architecture.
On mobile it can be really easy to accidentally downvote, too.
Good thing it is now possible to undo an accidental downvotes (or upvotes)
The Rise and Fall of Thinking Machines A close up look at a doomed-yet-brilliant start-up computer company that never quite grasped the basics of business.
the one part of the story thatI always wanted to hear about is why CM Lisp turned out to be an ineffective language. The 'thinner'*Lisp was usable for a surprisingly large number of things, but CM Lisp was alot more forward looking and interesting.
"But the things that we studied were so new that no one else knew exactly what they were doing either. It was amateurs who made the progress."
"In retrospect, if we had had any understanding of how complicated the project was going to be, we never would have started."
That's the universal truth of anything great I've done.
But these super companies could only update their architectures every 3-5 years, whereas Intel was chugging out faster CPU every year or six months. It only took a decaded for a commodity cluster to beat a mini supercomter company in price-performance. Most these companies never made it to 3.0.
I never get to finish my stories about this guy.
Using qdb from Kx or Jd for J, both columnar databases with billion row operations on capable vector-processing hardware is the modern realization of this type of computing.
These languages are not currently too popular, but I think a cousin of theirs will come on the scene and really light things up. Some current attempts at newer GPGPU targeted languages have popped up these past few years [1, 2, 3, 4].
The difference between these array languages and something like NumPy and other libs to add array processing and better numerics, is that the columnar databases or stores, have the array language built-in; you can abstract out, but if you program with them, there are no onion layers between you and speed and processing.
[1] https://github.com/melsman/apltail/
[2] http://futhark-lang.org/index.html
I quite miss programming the CM-2 in C* -- it was a really nice environment, and really pretty easy to program to (contrary to the legend I've seen thrown about that they were hard to program). Once you understood the various library functions, it was usually pretty straightforward to get things done.