CPUs, GPUs, and Hybrid Computing