title: GPGPU vs. Multicore?
body: <p>What are the key practical differences between GPGPU and regular multicore/multithreaded CPU programming, from the programmer's perspective?  Specifically:</p>
  
  <ul>
  <li><p>What types of problems are better suited to regular multicore and what types are better suited to GPGPU?</p></li>
  <li><p>What are the key differences in programming model?</p></li>
  <li><p>What are the key underlying hardware differences that necessitate any differences in programming model?</p></li>
  <li><p>Which one is typically easier to use and by how much?</p></li>
  <li><p>Is it practical, in the long term, to implement high level parallelism libraries for the GPU, such as <a href="http://msdn.microsoft.com/en-us/library/dd460717.aspx">Microsoft's task parallel library</a> or <a href="http://digitalmars.com/d/2.0/phobos/std_parallelism.html">D's std.parallelism</a>?</p></li>
  <li><p>If GPU computing is so spectacularly efficient, why aren't CPUs designed more like GPUs?</p></li>
  </ul>