Snow Leopard's Grand Central

One of the new features in Mac OS X Snow Leopard has been termed "Grand Central" and is supposed to be a framework/API that helps developers to exploit parallelization in multi-core/multi-cpu Macs.

I'm pretty excited about this, even though (or maybe because) there are no details yet.

In 10.5/Leopard, Apple introduced a convenient API centered around the NSOperation class, which enables developers to encapsulate tasks into an operation class, set its dependencies to other tasks and pass it to a queue for execution as soon as its dependencies are satisfied. It's truly a very slick way to make use of parallel execution.

The question is: How far will Grand Central go to extend this API (or to introduce a completely new concept of parallel execution)? While NSOperation is convenient, it's still not tackling the main difficulty in optimizing code for parallel computing: Sometimes, it's just not obvious (or convenient) to find or exploit potential for parallelization. For example, it's hard to ensure proper mutual access to shared memory regions with mutex locks, and sometimes it's just plain hard to see how code can be parallelized, since it might be necessary to switch to a completely different algorithm (probably based on different mathematical principles) in order to create potential for parallelization.

Thusly, I believe that Grand Central could be a really big thing, provided it's not just a way to implement parallelization, but to actively aid the developer in finding and exploiting potential for parallel execution. I can't wait to get the details.