This document summarizes a presentation given at the 2005 IEEE Hot Chips conference about parallelism in modern processors and how it relates to programming models. It discusses different types of parallelism available at the processor, system, and application levels. It then examines approaches to parallelism used by general-purpose CPUs, special-purpose CPUs like the Cell processor, and GPUs. While parallelism is increasing in these devices, programming them effectively remains challenging due to the difficulty of parallel programming and lack of appropriate language and tooling support. The document calls for more research in parallel programming models and languages to make better use of emerging multi-core architectures.