Grand Central Dispatch – Future of thread programming?

multicore Grand Central Dispatch   Future of thread programming?
Interesting move last week from Apple ! They’ve made the source code of Grand Central Dispatch available under an Apache open source license. This is a new technology introduced in Mac OS X 10.6 Snow Leopard trying to help developers deal with growing multi-core requirement. In a nutshell, GCD is an abstraction of threads management which allows programmers to deal with them at a much higher-level. It introduce a pool mechanism and allow specific tasks that can be run in parallel to be queued for execution. A monitoring and scheduling mechanism allow them to be executed in parallel on available core.

This sounds very appealing especially for application requiring high processing power such as scientific application. This could change the game for clusters and supercomputers.

So, why did Apple make the code available?

  • For the good of mankind – Very unlikely icon smile Grand Central Dispatch   Future of thread programming?
  • To get help from the open-source community. An Apple specific technology is very unlikely to get the help it needs to get to the next level. Having it available on other Unix platforms will probably move it forward quicker.
  • It will helps Unix platforms be more competitive for multi-core hence targeting Microsoft. This could be seen as a direct hit to Microsoft.
  • Push other technology, especially Blocks. This is an extension to C and the base for Grand Central Dispatch. This is currently non-standard but having it adopted and integrated into the C language is definitely appealing for Apple.

Whatever the reason is, this is something to be followed closely as it will probably change quite a bit software development as we know it. And I can already see some impact on software testing as well of course … Parallelism is always very difficult to test and debug …