Hacker News new | past | comments | ask | show | jobs | submit login
Homebrew Cray-1A (chrisfenton.com)
228 points by davidbarker 11 months ago | hide | past | favorite | 51 comments

This really has been posted here a lot - Well, for those following along at home, this story actually got a relatively recent update - as of this spring, the 1/10-scale Cray-1A is now residing next to its bigger self in the Computer History Museum in Mountain View!

Did the FOIA requests include NSA? You’d want a copy of FOLKLORE if it’s releasable; there’s at least one Cryptolog article about it that’s been declassified.


It did! I actually got a nice reply from Whitfield Diffie, basically saying "Haha, no." They have what amounts to a never-declassify-anything-digital policy. I got a similar letter from the NNSA.

Through a friend-of-a-friend, I did actually manage to get a copy of the source code to CTSS, the cray time sharing system, on microfiche from Lawrence Livermore National Lab, and I even had it digitized (but not OCR'd), but it's written in a language called COMPASS i've never found a compiler for.

COMPASS was the name of the assembler language for the earlier supercomputers that Seymour Cray designed while he was still working at CDC, such as the CDC 6000-series:


I misremembered, I think the CTSS source was actually written in a language called LRLTRAN. I just remembered it was something obscure.

LLNL used to have LRLTRAN manuals online. It's an extended Fortran-66 for Systems Programming.

> They have what amounts to a never-declassify-anything-digital policy

From what I've heard, part of it relates to volume. If someone asks to declassify a single page document, it is pretty easy to evaluate it and decide whether it can be released or not. Presented with thousands of pages of old source code, it is an immense undertaking. Added to that, people don't understand the old source code any more, and worry that there might be something lurking hidden in there that should not be released, but they might not notice it due to not understanding it.

I hope at least they never destroy any of this old stuff, and maybe one day (even if only decades or centuries from now) the US government will decide that enough time has gone past that it no longer could pose any risk.

Great project! I went down a similar path some years ago and ran into the same limitation with lack of any existing software. Very cool that you've got a chance of digging up COS!

We successfully recovered it, actually (although it turns out we couldn't find enough software for it to be interesting). My cray-buddy Andras has a great write-up on all of the work he's done on software recovery and writing a C++ simulator of all of this stuff: https://www.modularcircuits.com/blog/articles/the-cray-files...

I remember seeing a story about a replica Cray-1 in miniature some time ago. Was wondering if this was the same machine.

The Cray-1 was really distinctive in so many ways.

Sounds like a fitting end for the project.

Cray Blitz chess might be a fun one to get running. Source code is at https://github.com/swenson/cray-blitz/.

"It is a mix of FORTRAN source code and Cray Assembly Language (CAL), and looks like it supports the Cray 1, Cray X-MP, and Cray Y-MP machines, and possibly a SPARC machine."

Might want to try the National Cryptologic Museum. It's associated with the NSA and may have archives in their research library.

> This has some interesting implications – there’s no ‘divide’ instruction, for instance, because it can take a variable amount of time to finish. To perform a divide, you need to first compute the ‘reciprocal approximation’ (something we can do in exactly 13 cycles, it turns out) of the denominator value, and then perform a separate multiply of that result with the numerator.

Note that the special sauce behind this is the same as the special sauce behind fast inverse square root. The integer bitwise components of a floating point number permit a really good approximation of the log base 2 of it. And once you have the log base 2 of a number simple arithmetic does interesting operations.

log2(x^-.5) = -.5 \* log2(x)

log2(x^-1) = -log2(x)

The same trick can be used to calculate any constant power over the range [-1,1]. -.5 is the most famous for whatever reason, probably because of the "what the fuck?" comment in the open source quake code.

I'm not entirely sure why this knowledge was known at Cray, then lost, and had to be rediscovered at SGI or whatever. And I'm not entirely convinced it ever was lost. But if it was lost, I imagine it had something to do with replacing engineers whose bread and butter was done on a sliderule (which is inherently built on the premise of manipulating logs of numbers) with engineers who always had a pocket calculator.

   > The same trick can be used to calculate any constant power over
   > the range [-1,1]. -.5 is the most famous for whatever reason,
   > probably because of the "what the fuck?" comment in the open. 
 >  source quake code.
That was an interesting read, thanks!

I remember when I was learning 6502 it didn't have an add instruction. You had to clear carry, then add with carry.

> The actual design was implemented in a Xilinx Spartan-3E 1600 development board. This is basically the biggest FPGA you can buy that doesn’t cost thousands of dollars for a devkit.

Note that this bit is rather outdated. :) The FPGA on an entry-level development board (like a Xilinx Artix-7 35T) is comparable in size -- as well as much faster! -- and you can go even bigger without stretching your budget too much.

If you're willing to get a little adventurous, in fact, you can get an FPGA that's over ten times the size for under $200:


I really need to make an updated blog post about it, but this project evolved into a reasonably-well-debugged Cray J90 core that fits quite comfortably in a Xilinx Artix-7 35T board (I made a somewhat bulky Cray J90 Smartwatch that tells time by running a real-time n-body simulation of Jupiter and 63 of its moons . . . inferring the current time is left as an exercise for the viewer).

I could only aspire to such awesome geekiness. Thank you for making the world a more interesting place.

I'd recommend going with Digilent for FPGA development:


For some products, such as their Zynq 7000 dev boards, you can also get a cheap time-limited copy of Xilinx SDSoC which allows easier device driver development to the programmable logic side:


People are so weary of this that there aren't even the usual requests to put a date on the title of the original post.

It's like the story of the ground speed check from the SR-71 pilot.

(on the other hand, this is the first time I heard about the cray replica)

dang thats a lot of reposts!

Oh. That’s strange — I got an email from Hacker News this morning asking me to repost it because it didn’t gain traction originally, so I reposted it.

Oh yes, we sent that. The existence of past threads doesn't make a repost off topic! Reposts are fine after a year or so: https://news.ycombinator.com/newsfaq.html.

"It didn't get traction originally" was referring to https://news.ycombinator.com/item?id=20660889, not to the links above.

Ahhh, OK. Thanks for the clarification.

I'm still looking for a sufficiently brief way to make that distinction clear, because it gets misunderstood unfortunately.

One of my wife's (of 20+ years) pickup lines, that worked, apparently, on me was she said she could get me in to sit on a Cray-1.

The recovery of the data from the HD is particularly impressive:


> computational necromancy

Haven't you read laundry files? You could accidentally summon an alien horror from another dimension.

Did you see the shape of that thing? It obviously hides a well grounded summoning grid.

The Computer Museum of America, in Roswell, GA, has a large collection of Crays. They may have, or can provide leads, on software.


When I was working on a project (only a few weeks) at EPFL in Lausanne, they had two or three of their old Crays spread around the campus as static show pieces - maybe they still have some software.

Apple had a Cray X-MP at one point.

I used Cray and huge CDC mainframes way back when. Fun stuff.

That said, my Linux laptop with a 1070 GPU and CUDA does about seven trillion float operations a second. For modern times, the old mainframes don’t seem useful.

They had to use a tall skinny woman and a short woman to hook wires up from the inside. Shortest path between any point is the best way to increase speed. Love cray, you get a case of beer when you buy one!

I assume the beer was Leinenkugel's?

For those unaware, Leinenkugel's is made in Cray's home town of Chippewa Falls.

These are such interesting comments. Any links to read more about them?

Was it the CDC that had all the wires hanging out the side, all of them the exact same length for timing?

Cray 1 was built 45 years ago. Iphone is 10x that system today.

Fun to imagine what the computer might look like 45 years from now - everyone will have a gigabits quantum computer in their pocket?

Do note that that blogpost is almost ten years old. At peak power, the latest iPhone is now probably around 3000x faster than the Cray 1 if you count the GPU (although finding FP64 performance stats for the iPhone is bit challenging).

This is awesome and I want to build one for my home, inside of a Tardis

IIRC, a working Cray inside of a traveling Tardis collapses the whole thing into a black hole.

Heh heh. “Sure, your iPhone is 10X faster, and it’s completely useless to own one, but admit it . . you really want one, don’t you?”

NO, I want an 11 Pro with them three cameras!!

(But I am waiting for someone to emulate a Cray on a phone.)

Never underestimate the nerds on YC. Want to lose points? Make fun of time wasting nostalgia projects. Make fun of anything cellular automata. Never fails.

I actually think gutting one of the cases to use as a couch would be super awesome. It could definitely be the centerpiece of a living, room, den, or home office.

Facing apart from each other, it's more like something you put in the middle of the room during parties - so all the people watchers can sit there and look out, but not interact with each other.

Make it rotate. Add a light show. See the whole room. Bonus points when people get drunk/"altered states".

Turn a Cray-2 into an actual aquarium.

Be sure to stock it with crayfish.

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