Just like the previous post, I would like to put links for this subject and let’s think about it.
- Snow Leopard in Depth: Grand Central Dispatch
- OpenCL – Wikipedia, the free encyclopedia
- Giz Explains: Snow Leopard’s Grand Central Dispatch
- Mac OS X 10.6 Snow Leopard: the Ars Technica review – Ars Technica</li>
Currently, there is one thing I’m really curious about : How are they interrelated?
For example, Grand Central is to distribute jobs to multiple cores of CPUs, while OpenCL is to distribute jobs to CPUs and GPUs. Then, if a programmer want to achieve some parallelism transparently and don’t care about whether the job is done on GPU or CPU, what mechanism works on Snow Leopard? Currently it seems to me that you should write in OpenCL or Grand Central. ( Some will be supported transparently, though. ) Then how you will decide if your function is better to be performed by GPU or CPU?
How about NSOperation and NSThread are interrelated? How is OpenMP going to be used? Does NSOperation uses OpenMP internally? Or OpenCL or GrandCentral uses the OpenMP internally?
Let’s think about it after reading the articles above.