10/11/2025
Uma abordagem válida para melhorar o desempenho de um sistema computacional é usar múltiplos processadores que possam executar as tarefas em paralelo. As organizações comuns de múltiplos processadores são multiprocessadores simétricos (SMP, do inglês symmetric multiprocessor), clusters e sistemas de acesso não uniforme à memória (NUMA, do inglês nonuniform memory access).
Em relação à capacidade de processamento paralelo, é possível organizar os sistemas computacionais nas seguintes categorias:
%%{init: {'theme':'forest'}}%%
flowchart TD
M[Categorias de organizações]
M --> SISD[Instrução única, dado único]
M --> SIMD[Instrução única, múltiplos dados]
M --> MISD[Múltiplas instruções, dado único]
M --> MIMD[Múltiplas instruções, múltiplos dados]
SISD --> U[Uniprocessador]
SIMD --> PV[Processador vetorial]
SIMD --> PM[Processador de matrizes]
MIMD --> MC[Memória compartilhada]
MIMD --> MD[Memória distribuída]
MC --> SMP[Multiprocessador simétrico - SMP]
MC --> NUMA[Acesso à memória não uniforme - NUMA]
MD --> C[Clusters]
Um SMP consiste de vários processadores semelhantes dentro de um mesmo computador, interconectados por um barramento ou equivalente. O problema mais crítico a ser resolvido em um SMP é a coerência de cache. Esse problema de coerência ocorre porque cada processador possui sua própria cache, e assim é possível que uma determinada informação esteja presente em mais de uma cache ao mesmo tempo. Se esta informação na memória cache for alterada por algum processador, então a memória principal (RAM) e as caches dos outros processadores possuirão uma versão inválida desta informação.
Uma organização de computador no formato SMP possui várias potenciais vantagens em relação a uma organização de uniprocessador (apenas um processador na máquina), incluindo:
É importante observar que esses benefícios são potenciais, e não garantidos. O sistema operacional deve fornecer ferramentas e funções para explorar o paralelismo em um sistema SMP.
Um cluster é um grupo de computadores completos conectados, trabalhando juntos como um recurso computacional unificado. Cada computador em um cluster é chamado de nó. Para o usuário, é possível ter a ilusão de ser apenas uma máquina trabalhando. O termo "computador completo" significa que cada sistema tem peças de hardware suficientes para funcionar por conta própria, separado do cluster.
Na literatura, a construção de clusters traz quatro benefícios:
Um sistema NUMA é um multiprocessador de memória compartilhada, em que o tempo de acesso para determinado processador a uma determinada palavra na memória pode variar de acordo com seu endereço. Esse tempo não uniforme vem do fato de que a memória principal (RAM) não é um recurso compartilhado e uniforme, mas é segmentada e alocada para processadores específicos. A memória de cada nó serve como armazenamento primário para aquele processador. Este modelo aumenta a eficiência com que os processadores acessam e manipulam dados, já que os processadores não competem por os mesmos recursos de memória. É possível que um processador acesse uma região de memória de outro processador, mas esta operação é de menor prioridade e esta comunicação deve ser gerenciada pelo processador dono do recurso.