title: What can we do with OpenCL?
body: <p>I have been reading about OpenCL and I found this line:</p>
  
  <blockquote>
    <p>OpenCL gives any application access to the Graphics Processing Unit for non-graphical computing.</p>
  </blockquote>
  
  <p>Lets say I need to execute a a CPU intensive operation or an algorithm in Java or Clojure (or even maybe running Hadoop MapReduce), could I execute the operation in GPU using OpenCL? if yes, why I would do that?</p>
  
  <p>If we have CPU, why to use GPU?</p>
  
  <p>What are the scenarios of OpenCL applications?</p>
  
  <p>I read that OpenCL provides parallel programming, does this mean it will partition a target job across the CPU and the GPU? or across the GPU alone?</p>