NUMA (acesso não uniforme à memória)

NUMA (non-uniform memory access) é um design de memória de computador usado em sistemas multiprocessadores que fornece uma maior largura de banda e menor latência do que um sistema de memória compartilhada tradicional. O NUMA é usado em servidores high-end e supercomputadores que requerem o mais alto desempenho possível.

Em um sistema NUMA, cada processador tem sua própria memória local, que é conectada à memória compartilhada através de um barramento de alta velocidade. A memória local é dividida em vários bancos, cada um dos quais é atribuído a um processador específico. Os processadores podem acessar sua própria memória local diretamente, mas devem passar pelo barramento para acessar a memória compartilhada.

Os sistemas NUMA podem ser baseados em hardware ou software. Os sistemas NUMA baseados em hardware usam chipsets e processadores especiais que suportam a arquitetura NUMA. Os sistemas NUMA baseados em software usam hardware padrão, mas o sistema operacional e as aplicações são especialmente projetados para tirar proveito da arquitetura NUMA.

Os sistemas NUMA são projetados para escalar para um número muito grande de processadores. Em um sistema NUMA baseado em hardware, cada processador pode ter sua própria memória local, que é dividida em vários bancos. Os bancos são conectados à memória compartilhada por meio de um barramento de alta velocidade. Esse design proporciona um alto grau de escalabilidade, pois o número de processadores e o tamanho da memória local podem ser aumentados sem afetar o desempenho do sistema.

Os sistemas NUMA são frequentemente utilizados em conjunto com a computação em cluster, que é um tipo de computação paralela. Em um cluster, cada nó é um computador separado, e os nós estão conectados entre si através de uma rede de alta velocidade. Os nós em um cluster podem ser homogêneos ou heterogêneos. Em um cluster homogêneo, todos os nós são o mesmo tipo de computador. Em um cluster heterogêneo, os nós podem ser diferentes tipos de computadores.

Os sistemas NUMA também podem ser usados em conjunto com a grade O que é mais rápido NUMA ou UMA? O NUMA é mais rápido que o UMA porque o NUMA fornece uma maneira mais eficiente de acessar a memória. Com o NUMA, cada processador tem a sua própria memória local, à qual pode aceder rapidamente. Com o UMA, todos os processadores compartilham a mesma memória, o que pode levar a gargalos.

O que é SMP e NUMA?

Sistemas com mais de uma CPU são chamados de sistemas multiprocessadores, ou MPSs. Se essas CPUs estiverem firmemente acopladas e compartilharem um barramento ou outro caminho de comunicação, elas são chamadas de sistemas de multiprocessadores firmemente acoplados, ou sistemas SMP. Se não estiverem firmemente acopladas, elas são chamadas de sistemas multiprocessadores frouxamente acoplados, ou sistemas NUMA.

Em um sistema SMP, todas as CPUs podem acessar diretamente a memória e os dispositivos de E/S. Como resultado, os sistemas SMP podem escalar até um número maior de CPUs do que os sistemas NUMA. Além disso, os sistemas SMP podem ter menor latência e maior largura de banda do que os sistemas NUMA porque as CPUs não precisam se comunicar através de uma rede.

Entretanto, os sistemas SMP podem ser mais difíceis de projetar e implementar que os sistemas NUMA. Além disso, os sistemas SMP podem ser mais caros porque requerem mais ônibus ou outras vias de comunicação.

Qual é a diferença entre o acesso à memória UMA e NUMA?

Os dois principais tipos de acesso de memória são Acesso Uniforme de Memória (UMA) e Acesso Não-Uniforme de Memória (NUMA). O UMA é quando toda a memória é acessível a todos os processadores do sistema, enquanto o NUMA é quando a memória é dividida em pedaços, com cada processador tendo o seu próprio pedaço que pode acessar.

Os sistemas UMA são normalmente mais fáceis de programar, pois o programador não precisa se preocupar com qual processador está acessando qual memória. Os sistemas NUMA podem ser mais rápidos, porque o processador não precisa esperar que outros processadores terminem de acessar a memória antes de poder iniciar.

Qual dos seguintes também é chamado de arquitetura de memória não uniforme? A arquitetura de memória não uniforme também é conhecida como NUMA. NUMA é um tipo de design de memória de computador onde cada banco de memória é conectado a um controlador de memória separado. Esse design permite um acesso mais eficiente à memória porque os dados podem ser distribuídos entre os diferentes controladores.

Como sei se o NUMA está habilitado?

Você pode verificar se o NUMA está habilitado no seu sistema executando o seguinte comando:

numctl --hardware

Isto irá imprimir uma lista de nós NUMA no seu sistema, assim como as CPUs e a memória associada a cada nó. Se a saída estiver vazia, então o NUMA não estará habilitado no seu sistema.