With great power comes great complexity. OpenCL, with its wealth of features, makes it possible to code routines capable of executing on devices ranging from graphics cards to supercomputers. But to take full advantage of OpenCL, you need to have a thorough understanding of host applications and kernels.
This article has presented two analogies intended to ease the learning process, but in the end, it's the code that matters. The OpenCL API takes time and effort to understand, but once you've ascended the learning curve, you'll be able to tap into computing performance that exceeds anything a regular C/C++ programmer could hope for.
Full story at Dr. Dobb's Journal