NUMA: Non-Uniform Memory Access

Comparación de UMA y NUMA

Tres Modelos de Computadores de Memoria Compartida

1. Uniform Memory Access (UMA)

En sistemas con uniform memory access (acceso a memoria uniforme), cada procesador tiene acceso directo a una sola memoria compartida. Todas las ubicaciones de la memoria son equidistantes (en cuanto a tiempos de acceso) a cada procesador. La mayoría de los sistemas UMA incorpora caché para eliminar las disputas de la memoria pero este mecanismo no se ve desde las aplicaciones.

2. Non uniform Memory Access (NUMA)

Sistemas con nonuniform memory access (acceso a memoria no uniforme) tienen una memoria física compartida distribuida . Cada partición de esta memoria se ata directamente a un nodo pero se puede acceder a ella por procesadores en otro nodos via la red de interconexión. Así, los tiempos de acceso a la memoria difieren dependiendo de si la ubicación requerida es local al nodo o remota a este. Este nivel de complejidad agregado puede ser escondido del software de aplicación pero hacer esto lleva a un desempeño suboptimo. Para hacer mejor uso del hardware, el programador debe tomar la arquitectura en consideración. El cache se usa entre procesadores y memoria local asi como entre nodos. Máquinas con caché coherente a nivel del hardware se llaman ccNUMA.

3. Cache-only Memory Architecture (COMA)

Sistemas con cache only memory access (acceso a memoria solo en caches) no tiene memoria compartida física, pero el cache solo constituye la memoria de las máquinas. Se provee un solo espacio físico de direcciones pero los tiempos de acceso varían dependientemente si la ubicación de la memoria requerida está en el caché local o en uno remoto. El software de aplicación ignoraría la arquitectura del sistema ya que la máquina se comporta en forma muy parecida a una máquina UMA con caché.


Comparación de UMA y NUMA

Comparación de ccNUMA y COMA