Apple stuff
So unless you’ve been living under a rock, you’ve probably heard about the Apple event that is going on this week. Some of you may even be surprised to actually hear that it’s a week long event for developers and not just a 2 hour event where Steve Jobs showed off the new iPhone.
Not to say that the new iPhone is unimpressive, it certainly is most impressive, it’s that there are other things going on this week too. Some rather interesting things, say for example the next version of Mac OS X, code named Snow Leopard. Which I actually think is a great name, it implies no so much a brand new product but more of an advanced version and that is what Apple is going for, saying that this version will contain no huge changes. In my opinion that’s true and false at the same time. While there won’t be interface changes or a new dock there will be some underlying items that will make Mac OS X that most advanced OS out there.
Two of the main items I’m talking about are “Grand Central” and OpenCL. Both of these are really low level stuff that the everyday user will not see but they will reap the benefits almost instantly, especially Enterprise users (to which Apple is certainly catering too ATM).
OpenCL is a framework that uses the very fast GPU’s we all have now to run code very fast. Also know as GPGPU. From the GPGPU site:
GPGPU stands for General-Purpose computation on GPUs. With the increasing programmability of commodity graphics processing units (GPUs), these chips are capable of performing more than the specific graphics computations for which they were designed. They are now capable coprocessors, and their high speed makes them useful for a variety of applications. The goal of this page is to catalog the current and historical use of GPUs for general-purpose computation.
This concept isn’t new and it’s something that has some real benefit. I would guess that OpenCL is already alive and well in some parts of Leopard and Apple is just opening the kimono a bit for developers to start using this stuff.
Thought the best part of Snow Leopard is “Grand Central”. This is Apple’s addition of parallelism into it’s OS. Most of you probably aren’t jumping for joy on this but for a developer this is awesome shit. In an age where we have 4 core CPU’s in such tiny devices and yet most (save a few specialized ones) OS’s don’t even take advantage of this, is a crime. In some cases, having more cores actually can slow down software.
Take for example Excel. Excel 12 (2007) was rewritten to take advantage of many cores because it actually performed worse on a multicore system over a single core high clock speed CPU. It kind of makes me wonder what other apps in my day to day life would get a boost from a rewrite like this. I’m looking at you Visual Studio.
I’m just a little bit geeked out over the idea that an already “zippy” OS will be made even faster with the addition of these two very awesome technologies.
Don’t be fooled thought, these aren’t new ideas just new to the OS X crowd, also 16TB’s of RAM is impressive but has been available for 64 bit machines for years, it’s not an Apple breakthrough. I’ve been using the Parallel Extensions for .Net for sometime now and have seen a 2x perf increase in certain places. Also, the Accelerator Project from MSR (which may be included in the extensions but I can’t confirm it) released code back in 2006 that allowed my code to run on a GPU.
The ManyCore future is here already and OS vendors need to start looking into this soon. The possibility of 16 core desktops is very close to be coming a reality and if parallelism needs to start taking center stage for developers. I wonder if these items can just “be” there in the language/framework of the developers choosing. I would think that having it at the OS level would be best. These are questions for someone much smarter than I.
I think Apple is making a great decision in both focusing on cleaning up their OS and adding “Grand Central” and OpenCL and the other ideas they have for Snow Leopard. Hopefully Microsoft will follow and with Windows 7 add some of these items at the core.
Recent Comments