title: Is OpenCL ready for use on CPU?
body: <p>In the lab we have an heterogeneous cluster setup, with many Intel CPUs, a few AMD CPUs and a couple of Nvidia GPUs.</p>
  
  <p>For HPC development, the one thing I know that I could write once and run everywhere on this setup is OpenCL (not even Java ;) ). But here in the lab we are very used to using C or Fortran plus MPI to develop for running entirely on CPU, and maybe, rarely, someone may need to use the Nvidia's node to run something in CUDA.</p>
  
  <p>Now, at the start of a new project, I thought it would be very nice to be able to code things in MPI + OpenCL, and be able include in the distributed processing both GPUs and CPUs, running the same OpenCL code. So, is it advisable, is OpenCL implementations ready for such task? With OpenCL code running on CPU with Intel SDK, can I count with as good performance as I would have with a multithreaded C program compiled with Intel's compiler? Can you point to comparisons and benchmarks?</p>