Manycore processor


Manycore processors are special kinds of multi-core processors designed for a high degree of parallel processing, containing numerous simpler, independent processor cores. Manycore processors are used extensively in embedded computers and high-performance computing.

Contrast with multicore architecture

Manycore processors are distinct from multi-core processors in being optimized from the outset for a higher degree of explicit parallelism, and for higher throughput at the expense of latency and lower single-thread performance.
The broader category of multi-core processors, by contrast, are usually designed to efficiently run both parallel and serial code, and therefore place more emphasis on high single-thread performance, and shared memory. These techniques devote runtime resources toward figuring out implicit parallelism in a single thread. They are used in systems where they have evolved continuously from single core processors. They usually have a 'few' cores and may be complemented by a manycore accelerator in a heterogeneous system.

Motivation

is an issue limiting the scaling of multicore processors. Manycore processors may bypass this with methods such as message passing, scratchpad memory, DMA, partitioned global address space, or read-only/non-coherent caches. A manycore processor using a network on a chip and local memories gives software the opportunity to explicitly optimise the spatial layout of tasks.
Manycore processors may have more in common with technologies originating in high-performance computing such as clusters and vector processors.
GPUs may be considered a form of manycore processor having multiple shader processing units, and only being suitable for highly parallel code.

Programming models

A number of computers built from multicore processors have one million or more individual CPU cores. Examples include:
Quite a few supercomputers have over 5 million CPU cores. When there are also coprocessors, e.g. GPUs used with, then those cores are not listed in the core-count, then quite a few more computers would hit those targets.
  • Frontier
  • Fugaku, a Japanese supercomputer using Fujitsu A64FX ARM-based cores, 7,630,848 in total.
  • Sunway TaihuLight, a massively parallel Chinese supercomputer, once one of the fastest supercomputers in the world, using a custom manycore architecture. As of November 2018, it was the world's third fastest supercomputer, obtaining its performance from 40,960 SW26010 manycore processors, each containing 256 cores.