On The Connection Machine : "Beautiful thesis, though it doesn't tell you anything you can really do today." I don't understand: is data-parallel computing on a GPU much worse somehow? Or is it that there are better sources to read about data-parallel algorithms?
OpenCL is a very awkward way to do vector processing - everything is hard-coded to an abstract model of a typical consumer GPU memory hierarchy. CUDA is even worse with a ton of versions all having different limitations according to what the Nvidia chips can do.
It's awkward to do a lot of SIMD tasks on GPUs. The Connection Machine was a general-purpose SIMD originally designed for parallel graph algorithms.
OpenCL looks like what the Connection Machine C* language might get macroexpanded into prior to compilation: http://people.csail.mit.edu/bradley/cm5docs/CStarProgramming...