Arquitetura Paralela e Multicore
A arquitetura paralela e multicore refere-se ao hardware que executa muitas operações simultaneamente — múltiplos núcleos em um chip, unidades vetoriais e SIMD, e GPUs massivamente paralelas — juntamente com as estruturas de memória e comunicação que permitem que o trabalho paralelo prossiga de forma correta e eficiente.
Definition
Arquitetura paralela e multicore é o projeto de hardware de computador que realiza múltiplas computações simultaneamente através de núcleos replicados, unidades de paralelismo de dados amplas ou aceleradores especializados, juntamente com os mecanismos de interconexão e memória que os coordenam.
Scope
Esta área abrange as organizações de hardware para paralelismo: multiprocessadores em chip e designs de muitos núcleos, sistemas de memória compartilhada e a coerência e consistência que eles exigem, processadores SIMD e vetoriais para paralelismo em nível de dados, e arquiteturas de GPU. Ela trata de como o hardware paralelo é construído e como seu desempenho escala. Exclui o lado do software da programação paralela e distribuída e sistemas distribuídos em escala de cluster, que são abordados em computação distribuída e paralela, e o motor de execução de núcleo único abordado em microarquitetura de processador.
Sub-topics
Core questions
- Como o hardware paralelo escala o desempenho e o que limita essa escalabilidade?
- Como múltiplos núcleos são integrados em um chip e conectados à memória compartilhada?
- Que garantias de consistência e coerência de memória o hardware de memória compartilhada deve fornecer?
- Como os designs SIMD, vetoriais e de GPU exploram o paralelismo em nível de dados?
- Como as arquiteturas paralelas são combinadas com as cargas de trabalho para maximizar o throughput útil por watt?
Key concepts
- multiprocessador em chip
- paralelismo em nível de thread
- paralelismo em nível de dados
- processamento SIMD e vetorial
- GPU e muitos núcleos
- memória compartilhada e coerência
- consistência de memória
- rede de interconexão
- lei de Amdahl e escalabilidade
- hardware de sincronização
Key theories
- Lei de Amdahl
- O ganho de velocidade ao paralelizar uma computação é limitado pela fração que deve ser executada sequencialmente: mesmo com processadores ilimitados, a porção serial limita o ganho de velocidade geral, o que molda como as arquiteturas paralelas são projetadas e avaliadas.
- Taxonomia de paralelismo estilo Flynn
- O hardware paralelo é organizado por como os fluxos de instrução e dados se combinam — por exemplo, instrução única, múltiplos dados (SIMD) para paralelismo de dados e múltiplas instruções, múltiplos dados (MIMD) para sistemas multicore e multiprocessadores — uma classificação que enquadra as escolhas arquitetônicas.
Mechanisms
Processadores multicore colocam vários núcleos em um único die compartilhando um ou mais níveis de cache e uma interface de memória, conectados por uma interconexão on-chip. Protocolos de coerência mantêm seus caches consistentes, e um modelo de consistência de memória define a ordenação das operações de memória vistas entre os núcleos. Hardware de paralelismo de dados — unidades vetoriais, pistas SIMD e GPUs com muitos núcleos leves — aplica uma operação em muitos elementos de dados, enquanto primitivas de sincronização coordenam threads paralelos.
Clinical relevance
Após a estagnação da escalabilidade do clock de núcleo único, a arquitetura paralela e multicore tornou-se o principal caminho para um desempenho superior, de modo que praticamente todos os processadores modernos são multicore. GPUs e unidades SIMD agora impulsionam gráficos, computação científica e as operações de matriz no cerne do aprendizado profundo, tornando o hardware paralelo central para cargas de trabalho de alto desempenho e inteligência artificial.
History
Máquinas paralelas datam de supercomputadores vetoriais como o Cray-1 na década de 1970 e de multiprocessadores de pesquisa das décadas de 1980 e 1990. O fim da escalabilidade de frequência por volta de meados dos anos 2000 impulsionou a indústria em direção a chips multicore como padrão. GPUs evoluíram de pipelines gráficos de função fixa para aceleradores programáveis de muitos núcleos, e arquiteturas de paralelismo de dados tornaram-se fundamentais para o aprendizado de máquina moderno.
Debates
- Multicore de propósito geral versus aceleradores especializados
- Com retornos decrescentes de multicore homogêneo, há um debate sobre até que ponto favorecer aceleradores específicos de domínio (GPUs, unidades de tensor) versus núcleos de propósito geral, trocando programabilidade e flexibilidade por eficiência para cargas de trabalho específicas.
Key figures
- Gene Amdahl
- Michael J. Flynn
- John L. Hennessy
- David A. Patterson
- David E. Culler
Related topics
Seminal works
- hennessy2019
- amdahl1967
- patterson2020
Frequently asked questions
- Por que os processadores passaram a ter múltiplos núcleos?
- O aumento da frequência de clock de um único núcleo atingiu limites de energia e calor em meados dos anos 2000. Adicionar mais núcleos aumentou o throughput total dentro do mesmo orçamento de energia, então o multicore tornou-se a maneira dominante de manter o desempenho crescendo — embora transfira o ônus do ganho de velocidade para o software paralelo.
- Como uma GPU é diferente de uma CPU multicore?
- Uma CPU possui poucos núcleos poderosos otimizados para execução de propósito geral e baixa latência. Uma GPU possui muitos núcleos mais simples otimizados para trabalho de paralelismo de dados de alto throughput, executando a mesma operação em muitos elementos de dados, o que é adequado para gráficos e computação numérica densa, mas não para todas as cargas de trabalho.