Hacker News new | past | comments | ask | show | jobs | submit login
Homebrew Cray-1A (chrisfenton.com)
63 points by rfreytag on Sept 23, 2012 | hide | past | favorite | 9 comments



When I was little, my grandfather worked at NSA in Fort Meade, Maryland. One of my earliest memories is of him taking me, age five, in to see the Cray 1. I remember crawling around on the bench, but of course, that memory could be flawed. Who knows if they would have really let a five year old sit on the fastest supercomputer in the world. Still, that's how I remember it, so I'll stick with my memory.

It was the first computer I had ever seen, and it didn't disappoint. In 1976, the idea of getting to see a computer at all was the ultimate marvel to a little kid whose granddad had already started reading Asimov and Heinlein to him at night. The Cray fit every imagination I had about what a computer should be—sleek, huge, and like nothing I'd ever seen.

I don't remember anything else about the visit. I don't remember what else was in the room, or what I thought all the people might be doing. All I remember is that it was the first spark of fascination that led me to seek out any chance I could get to be around any computer. Seeing that same machine reproduced in miniature, right down to the bench, warms my heart. I wish my grandfather were around to make it with me. I can't wait to give this a try.


I read on the other thread the Cray-1 being caracterized as an important piece of history.

What important computations were made on those machines, i.e., what did they make possible? (Honest question)


One of the coolest aspects of this machine is that everything is fully pipelined. This machine was designed to be fast, so if you’re careful, you can actually get one (or more) instruction every cycle. This has some interesting implications – there’s no ‘divide’ instruction

That's actually a common optimization, e.g, Itanium doesn't have divide; just reciprocal.

I haven't spent time doing assembly optimization for a very long time, but it used to be the case that, even in x86, you were often better off using various tricks to avoid having to divide. I'd be interested in hearing if that's still the case, from someone who does that sort of thing today.

The actual design was implemented in a Xilinx Spartan-3E 1600 development board.

I love that hardware has gotten so cheap. When I was a teenager, I implemented a Sega on an FPGA, and it took Virtex II board (very high end, at the time) to handle everything. Now, an entire supercomputer fits on one of Xilinx's Spartan (i.e., budget) boards.


That's actually a common optimization, e.g, Itanium doesn't have divide; just reciprocal.

It's a bit more interesting than that: The Itanium doesn't have a reciprocal either, just an approximation of the reciprocal accurate to about 9 bits, which can then be refined if more accuracy is needed.


That's the same way the Cray-1 does it. It uses 3 passes of newton's method (and I think is accurate to 28 bits for the first time through).


Vector pipelining is different from instruction pipelining. And the Itanic is a very different machine than a Cray-1. But in both cases the motivation is similar: to avoid operations with a variable cycle time.

The Cray has no variable time operations at all. All operations have fixed timing. This makes the implementation of vector pipelining much easier.

The Itanic on the other hand relies on the compiler to instructions for optimal instruction pipelining. To do this the compiler needs to know the latency of the operations.

For a x86 a reciprocal instruction makes less sense (except for vectors of course) since most x86 schedule instructions dynamically by hardware. It does make sense multiply with a constant instead of dividing, etc. But a reciprocal doesnt.


btw, if you all haven't seen, he found a hard drive with an OS for this and pulled the data, but needs someone to figure out the filesystem and stuff; you can download the binary dump off his site.

http://www.chrisfenton.com/cray-1-digital-archeology/


I really hope this guy doesn't start a kickstarter for the hardware side of the project. I would be completely unable to restrain myself from backing it.





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

Search: