I do find it strange that most of the talk around multi-core Macs revolves around the experts telling people that multiple cores will not really be worth having until Snow Leopard arrives, and even then only when developers start taking advantage of technologies such as Grand Central. This, to me, seems wrong.
Multi-core everyday
Right now, just writing this article, I have Activity Monitor open and I can see that between 18 and 20 processes are active, that is they are consuming more than 0% of my CPU. Many of these are only consuming a very small part, but around half of them use more than 1%.
Last night my wife and I wanted to watch The Apprentice: Your Fired, the program that interviews the person just fired on The Apprentice. Unfortunately the recording on Sky+ clashed with something else and so didn't record. No problem, I just downloaded it using the BBC iPlayer and because my iMac is connected to the TV it was no problem to start watching it.
This was the first time I'd tried iPlayer from the iMac to the TV and I was disappointed that it had such a stutter that we really couldn't watch it. Of course I immediately check Activity Monitor and found both cores at 100%, but not from iPlayer, instead it was EyeTV. EyeTV (the software for the TV tuner that I have plugged into my iMac) was exporting a recording to iPhone format. I was actually suprised that iPlayer was doing as well as it was in the circumstances.
The high end view
It is true that there are classes of software that can, if the developer programmes it right, benefit more from access to multiple cores. This software is normally of a type that performs a large amount of work in the background, without user interaction. It will also be work that can be split up into small pieces that can be processed separately. Examples of this incllude;
- 3D rendering, where parts of an image or individual frames in an annimation can be processed separately
- Video/audio encoding, where separate sections of the timeline can be sent out to different processes
- Scientific calculations can also often be parcelled out to different porcesses, which is how most super-computers work
While all of this is interesting it's not exactly the everyday work that you and I do. So this is where the commentary that more than 2 cores are not needed for most people and that the Mac Pro/Xserve's 8 cores are a bit of a waste even at the high end.
The concurrent nightmare
Between the warnings of waiting for Snow Leopard and that more than 2 cores is a waste of time, it's no wonder that people think that our computers are a long way off of utilising multi-core processors. This is simply not true. Look at your machine right now, really look. Look in your menu bar and remember, just because the icons are small it doesn't mean that they are not doing a lot of work.
Try to imagine all that things that your Mac is doing right now, right at this moment. I don't know about yours but I can tell you all the things mine is doing;
- Safari has 4 tabs open; Google Reader, Google Mail, Google Calendar and SquareSpace admin. All of these are heavy AJAX pages which are either polling the server, or maintaining an open connection to listen to the server, for updates.
- EyeTV is sitting there checking its schedule ready for the next recording, which when it starts will mean EyeTV will be recording and encoding SD video, then when finished it will transcode it into iPhone format
- iTunes is checking for Podcasts updates and then downloading
- TED is checking for things to download them Azeursus will download them
- Skype and Adium are listening for status changes of my friends
- Time Machine is checking for file changes and putting them onto my Time Machine drive
- SuperDuper! is waiting for its scheduled start time and will then clone all changes from my main drive to my clone drive
- SpanningSync is checking for local or remote calendar or contact changes and syncing them if required
All of this is before you look to the other applications that I have open. I've become quite a user of Spaces recently and now have 4 setup with an assortment of applications open in them each of which, while mostly doing nothing, will trigger the odd event which will require some processing time.
I understand that I don't need 8 cores right now or even really 4. But I am seriously glad I have 2 and at times do wish I had more. It will only take a couple of developers of these applications to start pushing multi-core and I'm going to want as much power as I can get.
Finder will be the key experience changer
Even though I have all of those apps and processes running, my maching still mostly just sits there at 20% to 30% CPU usage, and that's perfect. It give me lots of head room for when I do something that quickly requires more processing power. Yet there are times when something as simple as right clicking a file and selecting "Open with" causes my whole system to freeze for a few seconds while my external drives spin up.
Firstly, why on Earth does OSX need to spin up my external drives to check for "Open with" applications. I've never launched an application off of either drive and it should know that, esecially the Time Machine drive. Secondly this is one example of the problems with Finder. While it is a key piece of software in OS X, iut is also one of the weaker ones. It still use the Carbon 32-bit API for its interface, rather than the modern, 64-bit compatible Cocoa, it's not as multi-threaded as it should be. In fact to my experience general file system access in OS X is not where it should be.
This is where the rubber meets the road though. These areas, GUI, file I/O, networking etc, are always where it is hardest to get performance gains. But in Snow Leopard we should feel a lot of them, straight off the bat. With a 64-bit, Cocoa based Finder able to utilise multiple cores OS X should instantly feel faster and smoother.
So now is the time
Don't listen to the nay-sayers, don't think that it will be years before you feel the power of as many cores as possible. When Quad-Core iMacs hit the Apple Store, I'm going to wish I could trade up and you should too. Power to the people, cores to the people.