NUMA (non-uniform memory access)

NUMA (non-uniform memory access) é um método de configuração de um cluster de microprocessador em um sistema de multiprocessamento para que eles possam compartilhar memória localmente, melhorando o desempenho e a capacidade do sistema de ser expandido. O NUMA é usado em um sistema de multiprocessamento simétrico ( SMP ). Um sistema SMP é um sistema "tightly-coupled," "share everything," no qual vários processadores trabalhando sob um único sistema operacional acessam a memória uns dos outros através de um barramento comum ou caminho de "interconexão". Normalmente, uma limitação do SMP é que à medida que microprocessadores são adicionados, o barramento compartilhado ou caminho de dados fica sobrecarregado e se torna um gargalo de desempenho. O NUMA adiciona um nível intermediário de memória compartilhada entre alguns microprocessadores para que todos os acessos aos dados não tenham que viajar no barramento principal.

NUMA pode ser pensado como um "cluster in a box". O cluster normalmente consiste em quatro microprocessadores (por exemplo, quatro microprocessadores Pentium) interligados em um barramento local (por exemplo, um barramento Peripheral Component Interconnect) a uma memória compartilhada (chamada "L3 cache") em uma única placa-mãe (provavelmente também poderia ser chamada de cartão). Esta unidade pode ser adicionada a unidades similares para formar um sistema multiprocessado simétrico no qual um barramento SMP comum interliga todos os clusters. Tal sistema normalmente contém de 16 a 256 microprocessadores. Para um programa aplicativo rodando em um sistema SMP, todas as memórias individuais do processador parecem uma única memória.

Quando um processador procura por dados em um determinado endereço de memória, ele primeiro procura no cache L1 no próprio microprocessador, depois em um chip cache L1 e L2 um pouco maior próximo, e então em um terceiro nível de cache que a configuração NUMA fornece antes de procurar os dados na "memória remota" localizada perto dos outros microprocessadores. Cada um desses clusters é visto pelo NUMA como um "nó" na rede de interconexão. O NUMA mantém uma visão hierárquica dos dados em todos os nós.

Os dados são movidos no barramento entre os clusters de um sistema NUMA SMP usando tecnologia de interface coerente escalável (SCI). A SCI coordena o que é chamado de "coerência de cache" ou consistência entre os nós dos múltiplos clusters.

SMP e sistemas NUMA são tipicamente usados para aplicações como mineração de dados e sistema de suporte à decisão nos quais o processamento pode ser associado a vários processadores que trabalham coletivamente em um banco de dados comum. Sequent, Data General, e NCR estão entre as empresas que produzem sistemas NUMA SMP.