Heterogeneous computing

From Wikipedia, the free encyclopedia - View original article

Jump to: navigation, search

Heterogeneous computing refers to systems that use more than one kind of processor. These are systems that gain performance not just by adding the same type of processors, but by adding dissimilar processors, usually incorporating specialized processing capabilities to handle particular tasks.

Usually heterogeneity in the context of computing referred to different instruction set architectures (ISA), where the main processor has one and the rest have another, usually a very different architecture (maybe more than one), not just a different microarchitecture (floating point number processing is a special case of this not usually referred to as heterogeneous). E.g. ARM big.LITTLE is an exception where the ISAs of cores are the same and heterogeneity refers to the speed of different microarchitectures of the same ISA, then making it more like a symmetric multiprocessor system (SMP).

In the past heterogeneous computing meant different ISAs had to be handled differently, while a modern example, Heterogeneous System Architecture (HSA) systems, eliminate the difference (for the user); use multiple processor types (typically CPUs and GPUs), usually on the same integrated circuit, to give you the best of both worlds: general GPU processing (apart from its well-known 3D graphics rendering capabilities, can also perform mathematically intensive computations on very large data sets), while CPUs can run the operating system and perform traditional serial tasks.

See also[edit]