Time Machines and Supercomputers

I found a Linpack App for the iPhone last week. Nothing special, just a bit of five minute fun. It seems a 3G model achieves about 20 MFLOPS. [Note 1]

What's that got to do with time machines? Well it got me thinking "I wonder when 20 MFLOPS was the performance of a leading edge supercomputer?" Actually, it was before the start of the Top500 list (1993), so finding out was beyond the research I was prepared to do for this blog.

So I thought instead about the first supercomputer I used in anger. As soon as I name it, if anyone is still reading this waffle, you will immediately fall into two camps - those who think I'm too young to be nostalgic about old supercomputers yet - and those who think I'm too old to be talking about modern supercomoputers :-).

It was a Cray T3D.

You're still waiting for the time machine bit ... hang on in there.

My application on that T3D sustained about 25 GFLOPS. Which is about the same as a high end PC of recent years. What this means to me is that anyone who cares to apply the effort today with a high end PC, could get comparable results to that work of 15-20 years ago that needed the supercomputer.

Or, in other words, that supercomputer gave us a 15-20 years time advantage over everyone who didn't have supercomputers - or a few years over others with smaller supercomputers. [Note 2]

That is one of the key benefits of High Performance Computing - the ability to get a result before a competitor - you could say HPC is a time machine for simulation and modelling.

Now for the [Notes] - which actually contain the real story!

Note 1 : It's not really true to say the iPhone 3G can do 20 MFLOPs - all we can say is that particular App achieved 20 MFLOPs on that iPhone 3G. The result is a factor of both the software and the hardware. Better performance can come from optimising the application as much as from buying a more powerful phone.

Note 2 : If fact, even with the same supercomputer, it would be hard for most people to replicate the results - simply because there was as much value in the software (physics, algorithms, performance engineering, implementation, etc) and the associated validation and verification program as there was in the supercomputer.

The supercomputer offered us a time machine. But the attention to performance and scalability in the application enabled us to actually use that time machine to get results faster than others - even if those others used the same supercomputer. And the validation and verification effort meant that we could trust what our time machine was telling us.


  1. Nice story, Andrew, which brings out the importance of the software that makes the hardware sing and dance. It also got me thinking about the power of the first supercomputer I used which - in the spirit of "I'll show you mine if you show me yours" - I can shyly reveal was a CDC 7600. Wikipedia tells me that that had a peak performance of 36 MFLOPs, which is a bit - but not very much - faster than our iPhones.

    Other points of contrast between the two machines (and the two ages) suggest themselves immediately, of course. For example, in spite of using it more or less continuously for three years, I never got to see the blinking lights of the CDC, as it sat up at Manchester's Regional Computing Centre, and I submitted batch jobs to it from Oxford. The job turnaround was - as I recall - about a day, which caused me to pay a great deal of attention to my syntax, especially after the first dozen or so jobs aborted due to trivial errors. In addition of course, I shared the machine with hundreds of other users. By contrast, the phone sits in my pocket enjoying - for the most part - a life of leisure, apart from when I wake it up to do my bidding.

    Finally, you might be interested in this nice post from Mike Croucher, which also looks at Linpack for phones.


Post a Comment

NAG moderates all replies and reserves the right to not publish posts that are deemed inappropriate.

Popular posts from this blog

Implied Volatility using Python's Pandas Library

C++ wrappers for the NAG C Library

ParaView, VTK files and endianness