[HN Gopher] The Connection Machines CM-1 and CM-2 (2015)
___________________________________________________________________
The Connection Machines CM-1 and CM-2 (2015)
Author : voxadam
Score : 73 points
Date : 2021-06-29 12:51 UTC (10 hours ago)
(HTM) web link (tamikothiel.com)
(TXT) w3m dump (tamikothiel.com)
| dragontamer wrote:
| "Data Parallel Algorithms" by Hillis / Steele is an excellent
| introduction to SIMD programming at a high level (assumed to run
| on the CM-2).
|
| Its found in the 1986 issue of "Communications of the ACM". I
| highly recommend the read. The prefix-sum methodology introduced
| in that beginner-level article remains the basis of a large
| number of GPU-algorithms today.
| dang wrote:
| For completeness, these are the interesting CM-Feynman threads -
| but let's keep this aspect off topic here since it's by far the
| better-covered.
|
| _Richard Feynman and the Connection Machine (1989)_ -
| https://news.ycombinator.com/item?id=18987188 - Jan 2019 (33
| comments)
|
| _Richard Feynman and the Connection Machine (1989)_ -
| https://news.ycombinator.com/item?id=13762614 - March 2017 (61
| comments)
|
| _Richard Feynman and the Connection Machine_ -
| https://news.ycombinator.com/item?id=12283614 - Aug 2016 (32
| comments)
|
| _Richard Feynman and the Connection Machine (1989)_ -
| https://news.ycombinator.com/item?id=8681061 - Dec 2014 (23
| comments)
|
| _Richard Feynman and The Connection Machine (1989)_ -
| https://news.ycombinator.com/item?id=5660763 - May 2013 (11
| comments)
|
| _Richard Feynman and The Connection Machine_ -
| https://news.ycombinator.com/item?id=2079473 - Jan 2011 (46
| comments)
|
| _Richard Feynman and The Connection Machine_ -
| https://news.ycombinator.com/item?id=1205500 - March 2010 (23
| comments)
|
| _Richard Feynman and The Connection Machine_ -
| https://news.ycombinator.com/item?id=723361 - July 2009 (10
| comments)
|
| _Richard Feynman and The Connection Machine_ -
| https://news.ycombinator.com/item?id=191212 - May 2008 (15
| comments)
|
| _Richard Feynman and The Connection Machine_ -
| https://news.ycombinator.com/item?id=31834 - July 2007 (5
| comments)
| protomyth wrote:
| The picture gallery and explanation of the design are amazing. Do
| yourself a favor and look at https://tamikothiel.com/cm/cm-
| hypercube.html and https://tamikothiel.com/cm/cm-sketches.html
| along with the pictures. I hadn't seen some of those pictures
| before.
| johndoe0815 wrote:
| The CM1 was a massively parallel computer built by Danny Hillis
| in the context of his PhD thesis at MIT and commercialized at
| Thinking Machines, Inc. in the mid-late 1980s. The machine had up
| to 65536 very primitive CPU cores (more or less just a simple
| ALUs) interconnected using a 27-dimensional hypercube - and a
| fascinating array of LEDs, indicating the activity of each of the
| CPUs (and just a fake display showing random patterns on later
| machines such as the CM5). You had to use a high-end workstation
| such as a Sun 3 or Symbolics Lisp machine to operate the CM1. In
| principle, the CM1 was a (very expensive) single user machine,
| but larger configurations could be configured into up to four
| independent partitions, one per user.
|
| One famous person working on the CM architecture was Richard
| Feynman; the story of his optimization approach to reduce the
| number of buffers in the router chip of the CM1 is worth reading:
| https://longnow.org/essays/richard-feynman-connection-machin...
| (this article also links to a TEDx talk by Danny Hillis).
|
| If you are interested in more CM1 hardware details, Danny Hillis'
| PhD thesis can be downloaded from
| http://dspace.mit.edu/handle/1721.1/14719
| killion wrote:
| We had a Thinking Machine at the University of Minnesota. The
| person who was in charge of it learned to determine if the code
| running on it was efficient by watching the patterns of the
| LEDs.
| gjm11 wrote:
| Surely "27-dimensional" must be wrong? 65536 is 2^16; what
| would an extra 11 dimensions be for?
|
| (The OP says 12-dimensional; the Wikipedia page says
| 12-dimensional in one place and 20-dimensional in another; the
| latter seems like it must also be wrong. I wonder whether it's
| 16+4 where the correct figure is 16-4, the idea being that
| there are 2^4=16 processors per node or something like that.)
| gjm11 wrote:
| It sure looks like 12 is the right number and is indeed 16
| minus 4.
|
| http://public.callutheran.edu/~reinhart/CSC521MSCS/Week7/Con.
| ..
|
| "For a fully configured CM-1, the network is a 12-cube
| connecting 4,096 processor chips (that is, each l6-processor
| chip lies at the vertex of a 12-cube)."
| johndoe0815 wrote:
| Oops, no idea where I got the 27 from, thanks for the
| correction. Grading too many exams is confusing...
| timmg wrote:
| Was it, essentially, a video card -- before video cards existed
| -- in a big box?
| dfox wrote:
| The architecture is significantly different from what you
| would find in typical GPU. But the programming model can be
| considered similar to early days of GPGPU programming on
| hardware that was not designed for that usage (ie. no control
| flow instructions, just giant SIMD number crunching thing
| running somewhat decoupled from host computer).
| dfox wrote:
| CM-1/2 is not exactly computer, it is more of a massively
| parallel SIMD computation accelerator. While AFAIK the CM-1
| microsequencer has some limited ability to handle control flow
| it is there mostly in order to futher compress the instruction
| stream coming from the front-end workstation (which came over
| two wonderfully thick 50-pair ECL cables) and most of the
| actual programmed controlflow is done in software on the front-
| end side. It's architecture is somewhat reminiscent of FPGA.
| But while you can freely program the individual macrocells in
| FPGA, all of the CM "CPUs" have the same configuration, but
| this configuration can change each clock cycle (see Fig 4.1 in
| the dissertation and take note that the ALU is essentially an
| freely configurable 8x2 LUT).
| c0nsumer wrote:
| I'd love to know about some of the serious successes of the
| Connection Machines, but I strongly suspect they are national
| secrets.
| teeray wrote:
| They were instrumental in a certain theme park, but the lead
| programmer suffered an unfortunate... workplace incident as he
| was attempting to commit industrial espionage. The Costa Rican
| government has kept this quiet since the 90s...
| leephillips wrote:
| We got some of the first ones at the Naval Research Laboratory
| in Washington, DC, and I used them to perform (unclassified)
| molecular dynamics simulations. People used them to scale up
| all kinds of simulations. The language was a special dialect of
| C called C*, which was essentially C with array extensions that
| made doing arithmetic on the CM (which, as other commenters
| point out, was really just a big array processor) relatively
| easy to program. It was a single-instruction-multiple-data
| model, where each little processor got its own piece of the
| array. Then as now, the way to get speed was to minimize
| communication among processors.
| wantoncl wrote:
| FROSTBURG is on display at the National Cryptologic Museum:
|
| https://en.wikipedia.org/wiki/FROSTBURG
|
| Whatever your feelings about the NSA, it's an extremely cool
| museum, and free admission (at least when I went). The staff
| are incredibly knowledgeable, while obviously they can't
| discuss classified material, you're bound to get some great
| unpublished tidbits from them.
| downut wrote:
| My group at NASA Ames was specifically tasked with pushing
| systems such as the Connection Machines, Intel Paragon, IBM SP-2
| into (boring) production status. Yeah, that was a fun job. Also
| contentious, but hey, you want the drama. But it was noticed that
| a CM-5 was supposed to be visible in Jurassic Park, so by
| consensus we all trooped over to Shoreline Theater to investigate
| this. On the clock. That is team building that I can get behind.
| All of these systems were tres cool to marvel at. As a fresh out,
| I thought it was super cool that the Cray YMP had a big red
| switch, just like my home 386 box. And yep, attention was paid to
| the quality of the blinkenlights when important visitors were
| around.
| Zenst wrote:
| Some nice internals of these gems here:
| http://www.corestore.org/cm200.htm
| michelpp wrote:
| The book "The Connection Machine" by Danny Hillis is a fantastic
| account of the philosophy of the CM design. When I was in high
| school, I didn't have a computer, I only had computer books from
| the library, and TCM was a huge influence on me at that age.
|
| This paper by Guy Steele and Danny Hillis is also a good
| introduction to the Lisp language they were developing (but from
| what I can tell never got off the ground) for the CM.
|
| http://diyhpl.us/~bryan/papers2/paperbot/25aa007a093cd69bbf0...
|
| In particular the language has two new operators, alpha and beta,
| that today we might consider flexible analogs to map (compute)
| and reduce (communicate). It's really fascinating how they made
| an algebraically closed language around this concept.
|
| This lecture by Hillis is also fascinating:
|
| https://www.youtube.com/watch?v=Ua-swPZTeX4
|
| Near the end he talks about how this room-sized machine had a
| syncronous clock, and how there were bits stored in the wires in
| transit because all the wire lengths were carefully cut multiples
| of the clock period.
| jrd259 wrote:
| The lisp dialect (*Lisp) did get off the ground. I programmed
| in it.
| convolvatron wrote:
| Actually there was this really novel language CM-lisp <https:
| //citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.10...>
|
| that one never got off the ground - I always assumed because
| of the difficulty of compiling that for a SIMD machine.
|
| *Lisp was fine, but it was really just a projection of the
| Paris model.
| agambrahma wrote:
| Interesting how the paper uses notation similar to
| Mathematica today
|
| i.e. `foo -> bar` to denote replacement, and curly braces
| to group together a set of these.
| sedachv wrote:
| There was also Gary Sabot's work on Paralation Lisp (really
| interesting approach to declaratively specifying data
| locality), and later Guy Blelloch's NESL (the first
| programming language to really deal with nested
| parallelism) for the CM-2.
| michelpp wrote:
| I should have been more specific, I was referring to CM-Lisp
| as shown in the paper not *Lisp with the !! syntax.
| rst wrote:
| The *Lisp language wasn't CM-lisp -- it was a different
| thing, somewhat lower level, originally written by Cliff
| Lasser and Steve Omohundro.
|
| https://en.wikipedia.org/wiki/*Lisp
| derac wrote:
| Wow, I've never seen a picture of these. They are beautiful,
| perhaps an inspiration for the NeXT cube?
|
| edit: oh, there is a section on the website specifically about
| this - https://tamikothiel.com/cm/cm-design.html Cool!
| juliendorra wrote:
| As a teenager, I had the opportunity to play and experience the
| monumental installation Genetic Images by Karl Sims installed at
| Pompidou Center in 1993.
|
| It was using a Connection Machine to render images in realtime:
|
| http://www.karlsims.com/genetic-images.html
|
| The photo at the top of the page is of the installation at
| Pompidou Center (in the space that is now the staff entrance.)
|
| Genetic Images has only been installed 3 times. Its installation
| at the Pompidou center as part of the Revue Virtuelle was
| especially significant at the time, as exhibiting a working
| super-computer in a museum had never been done, as far as I know.
| rbanffy wrote:
| It's a bit sad that modern supercomputers look like buildings
| full of 19" racks.
|
| This is one of the most beautiful computing machines ever
| built.
| f00zz wrote:
| Back in the day me and a friend made bootleg t-shirts with the
| CM-1 logo.
| dfox wrote:
| Tamiko Thiel herself is selling CM T-shirts on spreadshirt. It
| is my understanding that the original TMC T-shirts also had
| print on the back, the spreadshirt ones only have the cube of
| brainy cubes design on the front.
| protomyth wrote:
| link for the t-shirts https://tamikothiel.com/cm/cm-
| tshirt.html
| f00zz wrote:
| Nice, I didn't know that. Should get one of those.
| torgoguys wrote:
| I made 1/10th scale models of the machines themselves, complete
| with a computer inside and the blinkenlights, just because I
| was so struck by the design.
| cameron_b wrote:
| link?
| torgoguys wrote:
| I just made a few for myself. Happy to send files to
| whomever wants to do the same. Warning--it'll be a bit of a
| project if you want something fully functional, not just
| the plastic case. Holler a reply here if you're interested
| and we can work out a way to privately send contact info.
| nickt wrote:
| The last of the line, the SPARC-based CM-5 was the first time I
| saw one, but only on the big screen.
|
| http://www.starringthecomputer.com/computer.html?c=15
| jfoutz wrote:
| I always argued with people about the SGI UI for the Indy being
| real and not movie magic. I didn't realize that movie had a
| connection machine.
|
| That's amazing.
| dfox wrote:
| The book specifies that the park is ran by Cray supercomputer
| (IIRC there it even mentions particular model, probably
| Y-MP). For the movie it was replaced by CM-5, because it was
| deemed even more visually stunning, mainly because while
| Crays often have interesting industrial design (often because
| of the finite propagation speed of copper wire) they lack the
| blinkenlights.
| dragontamer wrote:
| IIRC, the default blinkenlighs on the CM-5 was apparently a
| LED for each of the 4096 "cores" (really a SIMD-lane), and
| whether or not that particular "core" is active. On means
| that SIMD-lane is active, off means its inactive. Kind of a
| glorified Microsoft Windows "CPU Performance" screen,
| except physical.
|
| Given the regular pattern in Jurassic Park, I assume they
| reprogrammed the LEDs to look more futuristic.
| rbanffy wrote:
| People who programmed those machines said that people
| often asked for programs that used those LED matrices as
| a display.
| intrasight wrote:
| I think the original CM-1 was about a 1 GFLOP machine. I remember
| when my university purchased one. A Raspberry Pi 4 is a 2 GFLOP
| machine.
| dfox wrote:
| CM-1 lacks floating-point hardware, which anecdotally made it
| unsuitable for the typical supercomputer number-crunching
| tasks, that makes 1GFLOP somewhat questionable. Hillis' thesis
| quotes 1000MIPS for the 4MHz prototype. I believe that
| production CM-1s had higher clock speed than 4MHz, probably
| 10MHz, which would change that to 2500MIPS for 64k CPU CM-1.
| jfoutz wrote:
| It's been a long time since I'd read about the connection
| machine, so my memory may be foggy.
|
| They didn't know what instructions would be useful, so each 8
| bit alu supports all 256 instructions.
| zero nand ones 0 1 ... 256
| --------------------- 0 1 1
| 0 0 1 ... 0 0
| 1
|
| and then a bunch of software support around around 'zectors'
| like a vector, with a zillion elements.
|
| so I think you could do float, but you have 3 zectors, the
| low bits, the high bits and the mantissa, you might need
| another one for sign.
|
| I think it was tough to give an apples to apples comparison,
| because it wasn't optimized for floats, but could do floats.
| it could also do bizarre things with bitmaps, if you could
| think of the right instruction to get your result. So for
| some problems, it was much faster than any alternative. But
| floats are readily accessible and well understood, so it's
| natural to reach for that tool first.
|
| Anywho, my memory is foggy. I might be mischaracterizing the
| design. But I think that's about right.
| dfox wrote:
| I assume that there were two completely different
| CMLisp/StarLisp implementations as the language described
| by Hillis' disertation and StarLisp paper (ie. with
| xexctors and xaps) is significantly different in the
| overall design from the StarLisp as described in CM-2
| manuals and as implemented by the Common Lisp CM SDK (it
| can be found somewhere on the internet and works in SBCL).
| The newer version is significantly lower-level and does not
| have the xector concept (and its design is similar to C and
| Fortran APIs for CM). I feel that the reason for this
| change was to make collective communication operations more
| explicit, probably because the store-and-forward
| communication network of CM-1/2 isn't exactly fast at doing
| arbitrary global permutations.
| convolvatron wrote:
| it was almost certainly less. while the cm2 had floating point
| chips from weitek lashed to the side, the cm1 ran one single
| bit instruction every .. ours was running a little over 4mhz,
| so 250ns. floating point was done in software.
| dang wrote:
| Past related threads (sans Feynman):
|
| _An Assessment of the Connection Machine (1990) [pdf]_ -
| https://news.ycombinator.com/item?id=20144863 - June 2019 (6
| comments)
|
| _The Design of the Connection Machine_ -
| https://news.ycombinator.com/item?id=16536243 - March 2018 (1
| comment)
|
| _CM-200 Connection Machine 1991-1996 (2015)_ -
| https://news.ycombinator.com/item?id=15995004 - Dec 2017 (1
| comment)
|
| _Connection Machine_ -
| https://news.ycombinator.com/item?id=14942997 - Aug 2017 (1
| comment)
|
| _The Connection Machine (1985) [pdf]_ -
| https://news.ycombinator.com/item?id=12281637 - Aug 2016 (59
| comments)
|
| _The Design of the Connection Machine (1994)_ -
| https://news.ycombinator.com/item?id=8582686 - Nov 2014 (6
| comments)
|
| _The connection machine._ -
| https://news.ycombinator.com/item?id=3009255 - Sept 2011 (4
| comments)
|
| _Ask HN: Has anybody here worked with the Connection Machine or
| the Lisp Machine?_ - https://news.ycombinator.com/item?id=743053
| - Aug 2009 (15 comments)
|
| (I've listed the Feynman ones at
| https://news.ycombinator.com/item?id=27682314 but let's keep that
| Connection Machine connection off topic here, since it's by far
| the most-discussed.)
___________________________________________________________________
(page generated 2021-06-29 23:01 UTC)