The Programmer's View of Multicore
This tutorial focuses on multicore processors that operate like a set of traditional microprocessors, such as x86s and ARMs, that are bundled together so as to share a common main memory (Fig. 1). Other multicore architectures such as current Graphics Processing Units (GPUs) are beyond the scope of this article. GPUs essentially comprise hundreds of specialized floating point cores and present themselves to software as tens of thousands of logical cores. The resulting massive floating point capability potentially makes GPUs powerful accelerators of measurement processing and requires programming techniques that are specific to them [1].
A programmer's view of a modern multicore microprocessor.