May 14, 2009

Is Apple barking up the wrong tree with Grand Central?

Vendors are scrambling to provide developer tools to support multicore CPUs, but customer demand is heading in the other direction

Parallel processing is one of the hot topics in computing these days, so I'm always interested when a major tools vendor introduces a new technology designed to make parallelization and concurrency simpler for the lay programmer. Most recently, Apple finalized the APIs for Grand Central this week, coinciding with the latest development build of its forthcoming "Snow Leopard" edition of Mac OS X.

Grand Central is a new set of technologies that bakes concurrency into the heart of Mac OS X. They're designed to make it easier for programmers to divide their applications into separate, atomic processing tasks, each of which can then be handed off to the OS for efficient distribution across multiple CPU cores. With Grand Central, the OS itself handles much of the low-level grunt work of supervising and routing independent tasks, freeing programmers to concentrate on user-facing issues.

This kind of assistive technology will be essential if developers hope to take full advantage of the next generation of high-performance CPUs. Cores have replaced clock speed as the new metric for processor power. If you think it's challenging to write code that runs efficiently on today's four- and eight-core systems, just wait until the average desktop PC contains 16 or 32 cores, or more.

[ Discover the challenges that multicore systems pose to application developers | See InfoWorld's tests on how Windows 7, Vista, and XP compare on multicore PCs. ]

Still, I can't help but wonder whether the industry as a whole might be running in the wrong direction. Despite years of research into grid processing and HPC (high-performance computing), efficient parallelization remains a tough nut to crack. The systems that do it well are mainly purpose-built environments that are poorly suited to the needs of your average PC user. So why not just have those systems do what they do best and leave our PCs to handle user experience and interactivity? In other words, why are we trying to re-create Google-style parallelism on our desktops when we could just have Google handle the heavy lifting for us?

White Paper

D2D Virtual Tape Library Replication Primer

This whitepaper explains the terminology and concepts behind Data Replication technologies and establishes some sizing rules through worked examples. Learn the new paradigm in disaster tolerance—protect data anywhere.

Download now »

Trial

Free 30-Day Desktop Virtualization Trial

Download a free 30–day trial and experience how XenDesktop delivers a pristine, on–demand desktop experience to users on whatever device they choose, while cutting IT complexity and costs.

Download now »

White Paper

Why Your Firewall, VPN, and IEEE 802.11i Aren't Enough to Protect Your Network

The emergence of WLANs has created a new breed of security threats to enterprise networks.

Included in HP ProCurve WLAN solutions is security technology that alleviates threats from WLANs through:
* Monitoring wireless activity inside and out of the enterprise
* Classifying WLAN transmissions into harmful and harmless
* Preventing transmissions that pose a security threat to the enterprise network
* Locating participating devices for physical remediation

Download now »
macmario 14-May-09 6:33am
You shouldn´t talk about something that you don´t know. Mac OS X has always had some kind of concurrency libraries (multithreading and multitasking) and Apple´s hardware with multiprocessors for some years. Grand Central is not what you think it is.
hmurchison 14-May-09 8:53am
MP3 encoding is a poor choice to use for discussing parallel processing. It's easier to look at video since it requires much more grunt. Compressor 3 in Final Cut Studio can tap all 8-cores of a Mac Pro to good effect. While consumers don't need highly parallelized applications they do leverage something that Datacenters don't. GUI. Servers often are setup/config/run 24-7 there's not much GUI interaction. Consumer efficieny lives/dies by GUI interaction and it's here that I think you'll see Grand Central Dispatch (GCD)come into its own. I need a GUI that is highly responsive at all times (certainly under heavy load) and I need to be able to switch tasks at all times under load in a responsive manner. Not only must we look at the efficient parallization of the single app but in a consumer setting with user facing application we need to pay mind to parallizing the layer beneath the applications to enable responsiveness that Google cannot give you on your desktop/laptop. The multi-core needs of server apps are important but so are the needs of the consumer yet how parallel capabilites manifest will be different for sure.
tomaddox 14-May-09 9:38am
A little over a decade ago, I went to work for a little company in Menlo Park called Be, Inc. You probably, from the tone of your article, have never heard of BeOS, which was a pervasively-multithreaded, highly-concurrent operating system. Be went under for a variety of reasons, which is a shame because BeOS provided a far better user experience than any other OS on the market at the time. The reason? Multithreading. Pervasively multithreaded apps could perform more efficiently, as did the entire operating system, so that a user could be running a number of active tasks (MP3 player, email, video, etc.) without causing any subjective degradation in experience. Obviously, the OS world has moved along, and Mac OS and Windows can almost approximate the same quality of experience . . . several hardware generations later. In short, from a user perspective, it is very much worthwhile to break the old programming paradigms.
grempe 14-May-09 1:22pm
This article is short sighted. Apple states that Snow Leopard will be a 'foundation' for advanced capabilities. As you state it is not a silver bullet that requires nothing from application developers to take advantage of its features. However, what you totally failed to take into account is the integration of GrandCentral and the newly standardized OpenCL language that Apple and others have spearheaded that will help developers not only run concurrent processes on the general CPU, but on the Graphics Processing Units as well. This will expose massive new computational power to programmers. Can you imagine rendering HD video in 10% of the time it currently takes? Can you see that as a marketing point? Just think about this. Did you notice that Apple is including not one, but two powerful and independent GPU's in all of its newly refreshed machines including laptops? Do you think they are adding this extra hardware (only one GPU of which can currently be used at a time under Leopard) just for fun? Or perhaps this gives us some indication of their plans. Hmmm, wouldn't it be more compelling to upgrade to Snow Leopard if users found they could suddenly gain massive improvements in certain applications performance by utilizing one GPU for graphics, and the other more powerful one for powerful multi-core processing in apps that can take advantage? Think harder. You'll see how powerful this will become as these tools are in developers hands over the next year.
Gray_Hair 2-Jun-09 5:44pm

Neil, I am embarrassed for you. You seem so far behind, I wonder how you can tell which forest Apple is in, much less which tree they bark up.

Multi-threading is not the "hot thing" any more. It is essential. Even though the various problem classes derive widely variable benefit from it, There is no other way left to increase the amount of computing done in a given increment of time. Even Gordon Moore has explained the laws of physics have halted the shrink in semiconductor geometries and that "increased chip complexity" is the surest path to extending the price/performance curve made possible by his famous "law".

Wake up and smell the coffee dude. You live at the end of an era. The speed of light is not increasing, and copper molecules are not going to shrink. Moore's Law is dead, Long live Gordo Moore! Whether or not we make serious breakthroughs in photonic computing, massive parallelism is the wave of the future. Given that, as you yourself stated, "efficient parallelization remains a tough nut to crack", Apple's approach is the classic computer scientist's approach to complexity. Push it down the stack. Derive the formulas, express the algorithms in machine terms, and encode it as a service. Shoot, in 30 or 40 years thread decomposition and reassembly ought to be in microcode. It is too important to be trusted to humans.

cmaurand 26-Aug-09 7:38am
why are we trying to re-create Google-style parallelism on our desktops when we could just have Google handle the heavy lifting for us? Because having Google do it for us is a security and privacy threat and they shouldn't really be trusted on that level. There was a mention in the comments re: BeOS and that it was pervasively multi-threaded. OS/2 was way ahead of BeOS on the threaded front and Windows has only now caught up to where OS/2 was 15 years ago. MP3 is a stream. Video encoding, database applications and Photoshop/Gimp would be better examples of how multi-threaded applications work. The OS itself works better if its multi-threaded. Any filesystem is a database of sorts (HPFS truly was one.) and can benefit from the threads and concurrencies. The user experience is greatly enhanced by threading. Just rendering the screen and accessing the filesystem at the same time is greatly improved.

Sign up to receive InfoWorld Resource Alerts

Subscribe to the Today's Headlines: First Look Newsletter

Find out what will be news for the day, with our first-thing-in-the-morning briefing.

©1994-2009 Infoworld, Inc.