Around this time last year I guessed that there would be something big in WWDC 2010. It seemed to me that Snow Leopard was basically Leopard, but also was supposed to have slimmer OS X with unnecessary codes removed and engineered for more modern kernel. And.. yes, it was. Apple people streamlined OS X kernels and got rid of old codes.
Also, they introduced Grand Central and OpenCL. In the case of OpenCL, it was new framework to support GPUs for general calculation. So, it was an addition to OS X, not to rewrite or re-architect the OS X. However, Grand Central is different. I believe it would required kernel to be re-architected.
Anyway, my fundamental question is how we should decide when is good to use OpenCL and Grand Central. The complexity started with this. GPU became to have capability of somewhat general purpose processing. CPUs got to have SIMD commands like MMX, SSE which were designed to make DCT calculation or any 8 bytes aligned data faster. Image data processing for video was historically processed with accelerated functionality of graphics cards. But MMX, SSEs are used to make those calculation faster.
DirectX and OpenGL acceleration in GPU are default nowadays with even cheap video cards and chips.
Then you got to consider which technology to use for accelerating your codes for those purpose? Grand Central distributes tasks across CPUs, while OpenCL makes it easy to put task on GPUs.
What is the next reasonable step to take, then?
Grand Grand Central which make distributing tasks to processor pools, composed of GPUs and CPUs! Grand Grand Central automatically distributes tasks to the processor pools automatically for you!
I expected a few sessions at WWDC for OpenCL and Grand Central. However, people are saying that most of sessions were for iPhone/iPad.
Do Apple people really think PC era is gone and iPhones and iPads are their best interest?