# Processador de molts nuclis

Els processadors de molts nuclis són tipus especials de processadors multinúclis dissenyats per a un alt grau de processament paral·lel, que contenen nombrosos nuclis de processadors més senzills i independents (des d'unes quantes desenes de nuclis fins a milers o més). Els processadors Manycore s'utilitzen àmpliament en ordinadors encastats i informàtica d'alt rendiment.

## Contrast amb l'arquitectura multinucli

Els processadors de molts nuclis es diferencien dels processadors de múltiples nuclis perquè s'han optimitzat des del principi per a un grau més alt de paral·lelisme explícit i per a un rendiment més elevat (o un consum d'energia menor) a costa de la latència i un menor rendiment d'un sol fil.
La categoria més àmplia de processadors multinúcli, en canvi, solen estar dissenyades per executar de manera eficient codi paral·lel i sèrie i, per tant, posar més èmfasi en un alt rendiment d'un sol fil (per exemple, dedicar més silici a una execució fora d'ordre, canalitzacions més profundes)., unitats d'execució més superescalars i cachés més grans i generals) i memòria compartida. Aquestes tècniques dediquen recursos en temps d'execució a esbrinar el paral·lelisme implícit en un sol fil. S'utilitzen en sistemes on han evolucionat contínuament (amb compatibilitat cap enrere) a partir de processadors d'un sol nucli. Normalment tenen uns "pocs" nuclis (per exemple, 2, 4, 8) i es poden complementar amb un accelerador de molts nuclis (com una GPU) en un sistema heterogeni.

## Motivació

La coherència de la memòria cau és un problema que limita l'escala dels processadors multinucli. Els processadors de molts nuclis poden evitar-ho amb mètodes com el pas de missatges, memòria Scratchpad, DMA, espai d'adreces global particionat, o memòria cau de només lectura/no coherents. Un processador de molts nuclis que utilitza una xarxa en un xip i memòries locals ofereix al programari l'oportunitat d'optimitzar explícitament la disposició espacial de les tasques (per exemple, com es veu a les eines desenvolupades per a TrueNorth).
Els processadors de molts nuclis poden tenir més en comú (conceptualment) amb les tecnologies originades en la informàtica d'alt rendiment, com ara els clústers i els processadors vectorials.
Les GPU es poden considerar una forma de processador de molts nuclis que té múltiples unitats de processament de shader i només són adequades per a codi altament paral·lel (alt rendiment, però un rendiment d'un fil únic extremadament pobre).

## Models de programació adequats

* Interfície de pas de missatges
* OpenCL o altres API que admeten nuclis informàtics
* Espai d'adreces global particionat
* Model d'actor
* OpenMP
* Flux de dades

## Classes de sistemes de molts nuclis

* GPU, que es poden descriure com processadors vectorials de molts nuclis
* Matriu de processadors massivament paral·lel
* Matriu asíncrona de processadors simples

## Referències

* ↑ Hadade, Ioan; di Mare, Luca «Modern multicore and manycore architectures: Modelling, optimisation and benchmarking a multiblock CFD code». Computer Physics Communications, 205, 01-08-2016, pàg. 32–47. DOI: 10.1016/j.cpc.2016.04.006. ISSN: 0010-4655.
* ↑ «[https://redwood.berkeley.edu/wp-content/uploads/2021/08/Davies2018.pdf FEATURE ARTICLE: Neuromorphic Computing Loihi: A Neuromorphic Manycore Processor with On-Chip Learning]» (en anglès). [Consulta: 24 febrer 2024].
* ↑ Mattson, Tim. «The Future of Many Core Computing: A tale of two processors» (en anglès), 01-01-2010.
* ↑ Hendry, Gilbert. «IBM Cell Processor» (en anglès). Arxivat de l'original el 2022-06-15. [Consulta: 24 febrer 2024].
* ↑ Amir, Arnon. «IBM SyNAPSE Deep Dive Part 3» (en anglès). IBM Research, 11-06-2015. Arxivat de l'original el 2023-12-07. [Consulta: 24 febrer 2024].