Thursday 18 March 2010

48 Billion Calculations Per Second

Now we know how blogs die ... I hope someone comes back and reads this. Blogs die when they get dormant and people stop checking on them. I had a bad run there. The fact is I was traveling for most of the three weeks. Now, I'm settled back down in Edinburgh. Last night I didn't drink any whisky, but I did have a McEwans70, a Spanish red, and a red from South Africa. I went to a dinner with the optimization group: smoked salmon, rump steak, panacotta! Very lovely. I was reminded why my wife loves Europe. The food is very good, but most importantly, they think of fries (chips, pommes frites) as classy enough to serve with steak.

I am involved in an adventure where I am trying to write source code for doing large scale calculations on the graphics card in your computer. This is taking a wacky amount of time as only a programmer should be attempting such a ridiculous undertaking. I am very far from a programmer/developer, but I am having a lot of fun. Today, I got someone else's program and my laptop was doing calculations at 48 giga-flops (floating point operations per second). That was for geeks. If it meant nothing to you, let me describe it a different way. My laptop computer was doing

48,000,000,000

single precision calculations per second.

Your computer has a graphics card, technically a graphical processing unit (GPU), which does lots of calculations to display your graphics. It does them very fast and many of them at the same time. Now all a GPU can do is simple calculations. A central processing unit (CPU), your computer's brain that you might call "the processor", can do much more complicated things. But, hey, if you want to multiply and add about 80 trillion numbers, you should do that on a GPU!

If you can watch HD on your computer, the graphics card is pretty good. My laptop has a pretty nice GPU, the NVIDIA Quadro FX 2700M. It has 48 cores on it. So, when I send calculations over to the GPU, it is like using 48 CPUs simultaneously. That's in my laptop. We are trying to get all of our code ready for the arrival of a new machine in late April. It will have multiple, very accurate GPUs designed precisely for this purpose and should perform at roughly 2 TERA FLOPS. That means this computer, which will be a desktop, not a supercomputer, will do

2,000,000,000,000

double precision operations per second. It will cost roughly $10,000. In contrast, the fastest supercomputer in the world today, with 224,162 CPUs and located at Oak Ridge National Lab in Tennessee, which presumably cost significantly more, can do only 1000 times as many calculations per second.

(Single precision versus double precision is about accuracy and I list it only for those who care. A single precision number is accurate up to 8 decimal places and a double precision number is accurate up to 16 decimal places. So one double precision calculation is 100,000,000 times as accurate as one single-precision calculation.)

Update: I'm at 615 pushups. (A very small number for this post.)

5 comments:

  1. I'm at 2.1km. Thanks for inspiring me back into swimercise. Maybe you can become a motivational speaker in addition to a programmer?

    ReplyDelete
  2. Dude, I got one of my Heatherlea mates to attend class yesterday. I'm on a roll!

    ReplyDelete
  3. Giga-flop........ sounds like something I called Jeff before he got crazy motivated and started doing push-ups.

    ReplyDelete