We are brothers, you and I. I purchased an 8-core Mac Pro yesterday. I’d been obsessing about it for months, and at some point, my old 2x2GHz G5 just couldn’t hack it. It would start stuttering while playing an MP4 on one screen while I was doing work on the other screen, usually surfing with about 30 windows open while transcoding yet another DVD to MP4, and it just couldn’t keep up. I know, this is a little more work than they probably envisioned for that machine, and I was throwing a high-data rate MP4 at it, and asking it to scale it to the size of my screen, but hey, it’s a computer.
Now, 8 FREAKING CORES! And feeding those cores is 6 GB of 800MHz DDR2!!! Okay, the cores are only going at 2.8 GHz (the slowest number in the Mac Pro line), but you need a very fast memory bus to keep all those cores fed, and coming from 667 MHz of regular RAM, I’m looking at better than two times the bandwidth. This is good, because the work that I do involves remapping large chunks of memory, and the memory bus was actually the limiting factor for some activities.
I transcoded a DVD using Handbrake, and the OS, true to its nature, distributed tasks to all eight cores and the frame rate it was seeing was over 45 frames per second, whereas I’d gotten accustomed to as few as 8 frames per second. This is where a good OS supported by well-designed frameworks can help you.
Many singly-threaded programs will benefit from multicore processors simply by making API calls that magically return a couple of microseconds later as opposed to several hundred microseconds later on systems with fewer (and/or slower) cores. Things such as video and photomanipulation work on predictable data sets that are ideal for distribution to other CPUs.
Seriously, I have some work to do, and one benefit of my company is that Mathworks licenses us to install a copy of Matlab at home (just the basic plus signal processing libraries). This doesn’t have their parallel processing libraries, but, well, I can fill in the gaps. I have many simulations to work on.
I don’t doubt for a minute that in about four years, I’ll want to trade this in on a 200-core cell processor with a 2 TB of RAM and massive storage that we’ll probably have to invent a new numbering system to describe. If there’s a way to gain one more tenth of a dB in our radars by just using an extra 45 Gflops, the people who I work with are probably claiming we already do that…