Manycore processor

Manycore processors are specialist multi-core processors designed for a high degree of parallel processing, containing numerous simpler, independent processor cores (from a few tens of cores to thousands or more). 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 (or lower power consumption) 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 (e.g. devoting more silicon to out of order execution, deeper pipelines, more superscalar execution units, and larger, more general caches), 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 (with backward compatibility) from single core processors. They usually have a 'few' cores (e.g. 2,4,8), and may be complemented by a manycore accelerator (such as a GPU) in a heterogeneous system.

Motivation 
Cache coherency is an issue limiting the scaling of multicore processors. Manycore processors may bypass this with tricks 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 (e.g. as seen in tooling developed for TrueNorth).

Manycore processors may have more in common (conceptually) 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 (high throughput, but extremely poor single thread performance).

Suitable programming models 
 Message passing interface
 OpenCL or other APIs supporting compute kernels
 Partitioned global address space
 Actor model
 OpenMP
 Dataflow

Classes of manycore systems 
 GPUs, which can be described as manycore vector processors
 Massively parallel processor array
 Asynchronous array of simple processors

Specific manycore architectures 
 ZettaScaler , Japanese PEZY Computing 2048-core modules
 Xeon Phi coprocessor, which has MIC (Many Integrated Cores) architecture
 Tilera
 Adapteva Epiphany Architecture, a manycore chip using PGAS scratchpad memory
 Coherent Logix hx3100 Processor, a 100-core DSP/GPP processor based on HyperX Architecture
 Movidius Myriad 2, a manycore Vision processing unit
 Kalray, a manycore PCI-e accelerator for data-intensive tasks
 Teraflops Research Chip a manycore processor using message passing
 TrueNorth an AI accelerator with a manycore network on a chip architecture
 Green arrays a manycore processor using message passing aimed at low power applications
 Eyeriss, a manycore processor designed for running convolutional neural nets for embedded vision applications

Specific manycore computers with 1M+ CPU cores 
A number of computers built from multicore processors have one million or more individual CPU cores. Examples include:

Sunway TaihuLight, a massively parallel (10M CPU cores) Chinese supercomputer, once one of the fastest supercomputers in the world, using a custom manycore architecture. As of November 2018, the world's third fastest supercomputer (as ranked by the TOP500 list), the Chinese Sunway TaihuLight, obtains its performance from 40,960 SW26010 manycore processors, each containing 256 cores.
Gyoukou (Japanese: 暁光 Hepburn: gyōkō, dawn light), a supercomputer developed by ExaScaler and PEZY Computing.
SpiNNaker, a massively parallel (1M CPU cores) manycore processor built as part of the Human Brain Project

See also 
 Multicore
 Vector processor
 SIMD
 High performance computing
 Computer cluster
 Multiprocessor system on a chip
 Vision processing unit
 Memory access pattern
 Cache coherency
 Embarrassingly parallel
 Massively parallel
 CUDA

References

External links 
 Architecting solutions for the Manycore future, published on Feb 19, 2010 (more than one dead link in the slide)
 Eyeriss architecture

Category:Computer architecture
Category:Manycore processors
Category:Parallel computing