Grand Central Dispatch (GCD) is a feature within Apple’s latest Mac OS, Snow leopard, which allows software developers to write applications to take advantage of multicore processors. And Apple has decided to make the codes for GCD open source.
Snow Leopard’s new Grand Central Dispatch feature, which serves as a system-wide mechanism for managing parallel task execution across multiple processor cores for developers, involves multiple components in the operating system.
The user-space implementation of the Grand Central Dispatch services API, called libdispatch, has been delivered as its own open source project, joining with other components that are part of projects Apple has already designated as open, including the kernel components in the Darwin OS XNU kernel and the blocks runtime that is part of the LLVM project.
Apple’s code giveaway was “something of a surprise,” according to MacResearch, a website covering the use of Apple technologies in the scientific research community, because the new feature of Snow Leopard “could be seen to give Apple a competitive edge in the new world of multi-core.”
However, opening the code to the community could help pave the way for its adoption. Writing for MacResearch, Drew McCormack noted, “Until today, it would have been very unlikely that any new UNIX tools would be developed on Mac OS X using Grand Central, simply because they would only run on the Mac. With the possibility that Grand Central will become available on other UNIX systems, the likelihood that Grand Central will be incorporated into command line tools is greatly increased.”
McCormack said there was little risk to Apple of sharing its new code, saying that it was “unlikely that Grand Central would be used by any direct competitor to Apple, like Microsoft,” and noting that its adoption by other Uunix and Linux systems would not “really pose a threat to Apple’s consumer-based business.”
Apple contributes to and runs a variety of open source projects, from WebKit to CUPS. Some efforts to open source its code have been wildly successful, while other have seen little enthusiasm. For example, there has been no real interest in Apple’s launchd among the greater open source community out side of Mac OS X, in large measure because it would require a massive reworking of Linux in order to put it to use.
Open source support for other Apple code that is easier for others to use has been a mixed bag. There has been some limited use of Darwin Streaming Server, Apple’s RTSP streaming project incorporated in Mac OS X Server as QuickTime Streaming Server. Webkit has been wildly successful, particularly in the mobile arena. Bonjour has been implemented for Linux, and taken in new directions.
Significant new outside interest in Grand Central Dispatch could result in a wider support base for building parallelism compatible with Apple’s other open technologies, such as OpenCL. The availability of the dispatcher on Linux and other Unix operating systems would also help generate demand for other command line utilities that tap into its power. That would help Apple leverage its technologies in markets where it has a minority position, such as in the enterprise and supercomputing.