Friday, September 11, 2009

Grand Central Dispatch is Open Source

I find this fascinating.

Apple has open-sourced libdispatch, better known to most people as Grand Central Dispatch.

Grand Central Dispatch is something that developers - at least those who attend WWDC - have known about for well over two years. It's not something that your typical computer user would get excited over, but from the perspective of a developer, it's a really exciting technology that allows you to leverage the power of all the processing units in a given machine relatively easily.

When I saw the GCD demo that Bertrand Serlet gave at WWDC 2008, I was blown away. I looked at it as a game changer for the long term. Until there's a huge breakthrough in chip technology, utilizing multiple cores and multiple processors is the way to improved performance and this looked like something that was going to launch them way ahead of everyone else.

I saw GCD as a huge competitive advantage for Apple. And now, they're giving it away under a fairly liberal open source license (the Apple Open Source license, a variant of theApache license). They not only proposed a new standard, they're giving away the underlying implementation that's been in development for probably three or more years. Though I haven't looked at it, from some of the sessions I attended this year, it sounded like getting this working was quite an engineering feet

I think it's awesome, but I'm honestly surprised by it. Strategically speaking, it's an odd move. I see the benefit to Apple for having the block notation and syntax be an open standard. I'm having some trouble seeing the strategic benefit to letting other people use this amazing technology for free. I have to think this will buy at least a tiny amount of good karma from the Open Source community. Maybe.



10 comments:

danimal said...

I see this as a good thing. Having worked in the computer animation field for over a decade I know this is but one industry that loves to chew through cpu power.

Apple open sourcing libdispatch means that we can have the same software run on Linux, OS X, and maybe Windows. That's huge.

I know a lot of people that like OS X as the desktop. Being able to run and test code on a Mac and then deploy the same code and gain the benefits of more cores on a Linux cluster is huge. No more "threads are this way on system A and another way on system B."

Granted, some kernel level tuning might be needed on non-OS X systems, but to be able to run the same number crunching code on my Mac and my Linux 8-core workstation will be killer.

Jeff LaMarche said...

danimal:

I don't disagree with anything you said. I also think it's a great thing. I'm just still a little surprised that Apple's management sees it this way.

I mean, if hypothetically, Apple hadn't open sourced this and Microsoft wasn't able to come up with a good competing technology, companies like yours would be sorely tempted to switch to all OS X hardware in the next few years as the software you use starts taking advantage of GCD.

From a technology and community perspective, this is great, but from a corporate, shareholder-fueled outlook, having some kick-ass technology that your competition doesn't have and may not be able to recreate for a while is better.

Matt said...

I don't think apple is releasing some breakthrough unintuitive technology. Windows had a kernel managed threadpool before, and lock-free queues have been used beforw. I think Apple invaluable contribution is packaging this tech with compiler, OpenCL and tools support where its highly approachable and available. I develop on Windows, Linux and MacOSX and only Snow Leopard had me running my code on a GPU and all four cores an hour after installation (granted it was sample codse). I think its in Apple's corporate interest to grow the audience of their frameework. Their selling point is Macs are still the best tuned for GDC development and deployment.

AlBlue said...

Jeff,

FYI it's under the Apache license; or at least, that's what the page you linked to is.

Alex

Jeff LaMarche said...

AIBlue:

Yeah, I noticed that. The link says it's the Apple License 2.0, but the top of the actual license still says Apache. Not sure if it's really the Apache license, or if they just forgot to change the header when they borrowed the verbiage (they used Apache license as starting point). Either way, it's a fairly permissive license.

AlBlue said...

Jeff,

Just to be clear - http://libdispatch.macosforge.org/ says the *Apache* license. Which link are you referring to?

Alex

Jeff LaMarche said...

My bad, I must have mis-read it. I've corrected the post.

araon said...

Thanks for sharing. you did a great job. looking forward on this post. psd template

Edwin said...

scrub m65 kamagra attorney lawyer body scrub field jacket lovegra marijuana attorney injury lawyer

h4ns said...

What youre saying is completely true. I know that everybody must say the same thing, but I just think that you put it in a way that everyone can understand. I also love the images you put in here. They fit so well with what youre trying to say. Im sure youll reach so many people with what youve got to say.

Arsenal vs Huddersfield Town live streaming
Arsenal vs Huddersfield Town live streaming
Wolverhampton Wanderers vs Stoke City Live Streaming
Wolverhampton Wanderers vs Stoke City Live Streaming
Notts County vs Manchester City Live Streaming
Notts County vs Manchester City Live Streaming
Bologna vs AS Roma Live Streaming
Bologna vs AS Roma Live Streaming
Juventus vs Udinese Live Streaming
Juventus vs Udinese Live Streaming
Napoli vs Sampdoria Live Streaming
Napoli vs Sampdoria Live Streaming
Fulham vs Tottenham Hotspur Live Streaming
Fulham vs Tottenham Hotspur Live Streaming
AS Monaco vs Marseille Live Streaming
AS Monaco vs Marseille Live Streaming
Alajuelense vs Perez Zeledon Live Streaming
Alajuelense vs Perez Zeledon Live Streaming
Technology News | News Today | Live Streaming TV Channels