A Central Processing Unit (CPU) is a general purpose processor – it can in principle do any computation, but not necessarily in an optimal fashion for any given computation. One can do graphics processing on a CPU – but it likely will not produce the result anywhere nearly as fast as a properly programmed GPU.
(CPU) MIMD: The MIMD architecture performs multiple actions simultaneously on numerous data pieces. One example is performing various mathematical calculations — such as addition and multiplication — simultaneously in order to solve a complex math problem with many separate components. MIMD computing may or may not be synchronized and is increasingly more common than SIMD computing.
A Graphical Processing Unit (GPU) is a special purpose processor, optimized for calculations commonly (and repeatedly) required for Computer Graphics, particularly SIMD operations.
(GPU) SIMD: The SIMD architecture performs a single, identical action simultaneously on multiple data pieces, including retrieving, calculating or storing information. One example is retrieving multiple files at the same time. Processors with local memory containing different data execute the same instruction in a synchronized fashion, with inter-processor communication for shift allocation.
Practical Differences: MIMD is frequently used for problems that break down algorithms into separate and independent parts, with each part assigned to a different processor for simultaneous solution; whereas, SIMD is typically used for problems requiring lots of computations with processors performing the same operation in parallel.