1990 Cray supercomputer vers. my grandmother’s Dell

How would a 1990 Cray supercomputer stand up against a 2010 $2000 Dell PC? How about a 1980 Cray supercomputer?

Desktop PCs have generally been about 15-20 years behind super computers, but I believe it is now 15 years or less.

It’s not apples to apples though. Someone can explain better than I can, but super computers place an emphasis on some things that PC’s do not.

But generally, for pure power, the lag is about 15 years. So, within the past few years, consumers could get power on scale with a super computer from the late 80’s to early 90’s.

What to measure and how to make the apples-to-apples comparison will spur debate, but it is safe to say that the lag is about 15 years and no more than 20, with the lag narrowing further every year.

.

It’s difficult to compare directly, because they’re designed for different tasks, but if we just measure FLOPS then a 1990 Cray ran at about 10[sup]9[/sup] FLOPS, or 1 GFLOP (G for Giga).

From wikipedia:

Indeed.

I’d not consider this the gold standard for comparing, say, missile targeting planning with running the fastest version possible of Firefox. FLOPS – floating point operations per second – tests just that, exactly. Modern operating systems for most of their functions don’t depend on a whole lot of floating point math. Big machines targeted for calculating sciency stuff are working with a lot of floats.

Heck, it’s still relatively recently that floating point co-processors aren’t an optional feature of consumer CPU and computer builds.

That is rather like asking how my Nissan Versa compares to an Abrams tank. They are superficially similar but designed for to meet different needs.

Ok then. How about: is a 2010 Dell better able to carry out the tasks for which a Cray 1990 was designed? Or a Cray 1980?

A supercomputer like the Cray was designed as a number cruncher. Crays were vector processors, meaning that they took large numbers of data and performed operations on them. This made them very good for number crunching, but not so good for more general tasks.

A modern top of the line desktop PC can outperform a Cray of 20 years ago in things like handling multiple users and serving files and that sort of thing. If you are doing number intensive calculations like the air flow around the space shuttle (one of the tasks a Cray actually did) the Cray will still outperform the desktop PC, but not by a huge margin.

But basically, you can have a “Cray light” sitting on your desk doing almost the same calculations and performance of a supercomputer of a couple of decades ago.

The special effects for “The Last Starfighter” (a movie from 1984) were rendered on a Cray X-MP supercomputer. You can get better graphics in most desktop PC games these days, and the latter are in real time.

It’s the standard for comparing supercomputers which is why I chose it.

And so, to follow up Rune’s question, yes, it would be able to complete the same program more quickly even though it’s not optimised for such tasks.

Actually, GPUs (processor on graphics cards) perform similar types of computations so in real life, you might well offload the calculations to there. And indeed, modern high performance computing uses GPUs.

Well, I hesitate to disagree with you, but I think you’re wrong. A modern CPU will outperform a 1990 Cray even on number intensive calcs. A modern GPU will absolutely trounce it. But I’m prepared to be proved wrong: can you give me any figures that will change my mind?

That is misleading. A modern PC can be programmed to perform the same tasks as a twenty year old Cray (both are turing complete), and can complete them within comparable timescales.

This is a good point. I think the bigger difference is that crunching numbers on the Cray would have required specialized assembly programmers, whereas on a modern PC any chucklehead from a local university should be qualified to knock out roughly the same program in C++. If the Cray is still faster at that point, you can bring in better programmers and/or optimized compilers, and if the Cray is still faster, you can buy a couple more $500 PCs. The real advantage of the Dell is that it’s cheap and flexible. While it might be sexy to compare FLOPS, in terms of real-world practicality the Cray is next to useless.

A desktop PC has to be bundled to complete a wide variety of tasks (graphics, connections, interface, settings, virus protection, use-ability, etc) whereas a supercomputer might place an emphasis on a more narrow band for the user needs.

Instead of comparing a Nissan Versa of 2010 to an older tank, think of this analogy instead: It’s like trying to compare a modern family sedan with an older race car. On one hand it has many capabilities of older race cars, but probably can’t do the one thing the race car could: Race.

A Cray T-90’s vector processor could handle about 1.8 Gflops, which is less than a modern CPU, but you could have up to 32 of these vector processors in a T-90 for a total of 57.6 Gflops.

A modern PC is going to run somewhere under 10 Gflops for a typical Intel or AMD dual core system, if the numbers I looked up on google are accurate.

I wasn’t really thinking about the GPU, and you are right that a GPU can outperform a 1990s era Cray.

Sorry, that’s still a bad analogy, as the modern PC can perform identical tasks to a supercomputer of the early 90s.

I think engineer_comp_geek’s figures are correct, but bear in mind an old supercomputer will only perform well when working on highly parallel computations. A PC would be much faster than a Cray T-90 in many cases.

I’ll repeat my wikipedia quote:

Now, a Dell with that processor does go for $2,399 so it’s $400 dollars over budget, but I think that even a slightly slower one would work.

You’re [engineer_comp_geek] right that probably most currently used desktop PCs aren’t that powerful, but new ones you buy should be.

There are a lot of differences between a Cray vector machine and an x86 processor, but many of them have been narrowed over time. The true Cray really was designed for a very specific purpose, and was very good at it.

Crays were always native 64 bit, and were designed around a floating point pipeline. Their big trick was being a vector machine, which meant that they were specifically designed to work well on regular arrays of floating point numbers (basically being good at matrix arithmetic.) Once the pipeline was loaded up they could emit two 64 bit floating point results each clock cycle, and keep doing it. Modern processors can’t do this within the core instruction set. However the advent of the SSE and similar add on instructions (and essentially add on arithmetic units) allow them to get closer. (A modern x86 can retire 2 ops per clock in some cases, but in practice it is very hard to feed it in such a way that it keeps doing it.)

However there are other important differences. Modern processors rely very heavily on cache to keep often used data ready at hand, so that the processor actually has something useful to work on. Cache memory is expensive in all sorts of ways, and the balance of cache design is a tricky at best. Cray machines didn’t have cache. The vector architecture, plus very expensive memory allowed them to essentially have the operands needed for a calculation always ready. Because of the regularity of the operations the machines typically undertook, the memory could be requested to deliver operands needed for calculations quite some time in the future. The memory controllers could manage up to hundreds of outstanding requests for data.

The big feature of these machines was really that if you measured peak floating point performance, and also sustained performance, they were very close. Most machines can’t manage this. They can get quite high peak rates, but they can’t keep it up. The caches start to thrash, the memory bandwidth starts to choke. The big vector machines were very well balanced, and just kept steaming on.

Early machines were very difficult to program. To get the potential performance a programmer needed to hand craft the code in many arcane ways. One of the critical advances was the development of high quality compilers. Supercomputers were, and in many cases still are, programmed in Fortran. Fortran has changed over the years, and in some ways modern Fortran variants have some very neat features. For big regular data and matrix algebra it is hard to beat. Nobody programs supercomputers in C++ unless they have a gun held to their head. It is bad enough programming normal code in the wretched trainwreck of a language.

The other aspect of the Cray supercomputers, and true supercomputers in general is IO performance. There is no value in being able to rip the head of a problem if you can’t get the data in and out of the system quickly. Very large, expensive, and seriously quick IO controllers were the mark of these machines. Parallel disk arrays, and specially crafted OS mechanisms to allow proper parallel access to stripped disks.

The big change from a Cray of 1980 to a Cray of 1990 was really adding processors. You could get a 16 processor machine, whereas the 1980 Cray was a single processor. The late 1980’s saw the introduction of data parallel machines that challenged the traditional vector machine’s pre-eminence.

So, could your modern PC beat a 1980 Cray? 250MFLOPS 64 bit peak, 140MFLOPS sustained? 4 Million 64 bit words of memory - for a grand total of 64MB of memory? But memory with 25ns cycle time. Clearly a modern machine will beat it, but the difference is closer than you might think. A 1990 Cray? 8 processors, up to 2GB memory, 8 x 333MFLOPS of 64 bit? Ballpark performance, but I would bet on the Cray. The big wins will still be sustained performance. Your PC will be OK for a short while on a small problem, but will choke on a large problem. The Cray will hardly notice.

Yup. Back in high school, I scored an old Compaq running on a 486 SX - who needs floating point math if all you’re going to do is slap DR-DOS and Netwars on it, right?

Good times, good times.

And a modern family sedan can perform identical task to race cars of 20 years ago.

Hijack, just to brag: I’ve sat on the Cray 1 (serial number: 1). At the time I worked at the Lab in Los Alamos, the old Cray 1 had long been surpassed by Thinking Machines and Cray YMPs; the old girl drew far too much power for the results it produced. Therefore, it was in the lobby of the security-fenced building where I worked, performing in its last days of service as a bench.

A few years ago, I needed some double precision floating point numbers crunched for a few billion iterations. I programmed it in a compiled basic, somewhat similar to a typical fortran. It ran in 127 seconds on my 1.?? gHz AMD. Out of curiosity, I went looking to see how fast that would have run on early Crays programmed in fortran. To the best of my ability to determine, the nearly modern AMD would have equaled or slightly beaten an X-MP, and been easily trounced by a Y-MP. That was for a specific problem. Different problems using different math would, of course, give different results, so YMMV.