SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
Memoria Compartida Distribuida

Existen dos sistemas con varios procesadores: multiprocesadores y
multicomputadoras. En un multiprocesador, dos o más CPU comparten una memoria
principal común. En la multicomputadora cada CPU tiene su memoria particular. Nada
se comparte.

Esto afecta en el diseño del hardware. En las cumputadoras con multiprocesadores se
pueden conectar los procesadores a la memoria mediante un bus, siendo que cuando se
tenga una cierta cantidad de procesadores, el bus resulta en un cuello de botella. Por
otro lado, multiprocesadores con conmutador son escalables, pero lentos, costosos y
complejos.

Es más fácil construir multicomputadoras, basadas en computadoras sencillas.
Memoria Compartida Distribuida

Multiprocesadores con bus

Un bus es un canal, con una colección de cables paralelos, algunos con la dirección a la
que se desea leer o escribir el CPU, algunos para enviar o recibir datos y el resto para
controlar las transferencias.

El bus debe estar sincronizado vía reloj, tanto con los procesadores como con la
memoria.
Memoria Compartida Distribuida

Multiprocesadores con bus:
Memoria Compartida Distribuida

Multiprocesadores basados en bus:

Multiprocesador:                    Multiprocesador con ocultamiento:
Memoria Compartida Distribuida

Multiprocesadores basados en bus:

Cuando cualquiera de los CPU desea leer una palabra de la memoria, coloca la
dirección de la palabra en el bus y coloca una señal en la línea de control de bus para
indicar que desea realizar la lectura. Cuando la memoria ha encontrado la palabra
requerida, la coloca en el bus y tiende otra línea de control para anunciar que está lista.
Entonces, el CPU lee la palabra. La escritura se realiza de manera análoga.

Para evitar que dos o más CPU intenten el acceso a la memoria al mismo tiempo, se
necesita de un arbitraje de bus.

La desventaja de tener un solo bus, es la sobrecarga.
Memoria Compartida Distribuida

Multiprocesadores basados en bus:

Escritura a través del caché:

Cuando un CPU lee por primera vez una palabra de memoria, esa palabra es llevada por
el bus y guardada en el caché del CPU solicitante. Si más tarde necesita de esa palabra,
el CPU la toma del caché, reduciendo así el tráfico del bus.

Se tienen dos posibilidades:

• Fracaso de lectura ( palabra no aparece en caché )
• Suceso de lectura ( palabra aparece en el caché )
Memoria Compartida Distribuida

Multiprocesadores basados en bus:

Escritura a través del caché:

En el momento de la escritura de una palabra en la memoria por un CPU, este nuevo
dato debe ser puesto a disposición de los demás procesadores, siendo por lo tanto
necesaria una sincronización de los caché respectivos de los demás procesadores
( consistencia de caché ).
Memoria Compartida Distribuida

Multiprocesadores con conmutador:

Los sistemas multiprocesadores basados en bus funcionan adecuadamente para sistemas
pequeños ( alrededor de 64 CPU ), sin embargo no escalan con sistemas de cientos de
procesadores.

Se puede solucionar:

• Reduciendo la cantidad de comunicación
• Incrementando la capacidad de comunicación

Un método diferente consiste en construir el sistema como una jerarquía. Se colocan
algunas CPU en bus, y estos se consideran como una unidad. Se construye el sistema
con varias unidades y se conectan mediante un bus entre ellas.
Memoria Compartida Distribuida

Multiprocesadores con conmutador:
Memoria Compartida Distribuida

Multiprocesadores NUMA:

El ocultamiento de hardware en sistemas grandes no es muy simple. El hardware y
protocolos deben mantener estructuras de datos complejas. Como consecuencia,se eleva
el costo. Para ello se opta por diseños que no requieran elaborados esquemas de
ocultamiento. Una de estas arquitecturas es el procesador NUMA ( acceso no uniforme
a memoria ), en contraposición a un sistema multiprocesador tradicional UMA ( acceso
uniforme a memoria ).

Cuando cualquier CPU escribe un valor en la localidad “a”, una lectura posterior por un
procesador diferente regresará el valor recién escrito.

En una máquina NUMA, el acceso a memoria remota es mucho más lenta que el acceso
local, y no se intenta ocultar el hecho mediante ocultamiento de hardware.
Memoria Compartida Distribuida

Multiprocesadores NUMA:

Propiedades:

• Todos los procesadores comparten la misma memoria.
• Es posible el acceso a la memoria remota.
• El acceso a la memoria remota es más lento que el de la memoria local.
• El tiempo del acceso remoto no se oculta mediante el uso de los cachés.

NUMA ofrece memoria distribuida para cada procesador, evitando así que afecte al
rendimiento del sistema cuando varios procesadores intentan acceder a la misma
memoria. Para los problemas de las propagación de datos (comunes en servidores y
aplicaciones similares), NUMA puede mejorar el rendimiento utilizando una única
memoria compartida por un factor de aproximadamente el número de procesadores (o
separando bancos de memoria).
Memoria Compartida Distribuida

Diferencia entre esquemas NUMA y clústeres

En NUMA hay una sola imagen de kernel ejecutándose, en contraposición del modelo
convencional donde cada nodo ejecuta una imagen propia. En el cluster, cada nodo es
una entidad propia que hay que gestionar, mientras que en NUMA es un componente de
un único sistema que hay que gestionar.

Es conveniente utilizar NUMA cuando se quiere escalar de forma sencilla y rápida.

En el caso de los sistemas NUMA, la complejidad de la gestión se ve reducida ya que
sólo administramos un equipo. En cuanto a la conectividad, tampoco es un problema
porque cada nodo tiene su memoria y en principio no utilizará la memoria remota. En
caso de utilizar la memoria remota, la conectividad se hace internamente mediante
buses de elevado ancho de banda y muy baja latencia.
Memoria Compartida Distribuida

En una arquitectura NUMA hay que distinguir una serie de elementos:

Memoria local: en la arquitectura NUMA nos encontramos con que la memoria puede estar
asociada a un procesador o no. Si hablamos de la memoria asociada a un procesador, hablamos de
memoria local.

Memoria remota: por eliminación, esta será la memoria no asociada a un procesador.
Distancia: cuando hablamos de distancia, generalmente se hace referencia al número de hops que
tienen que darse hasta llegar a un dispositivo, memoria o CPU. Cuantos más hops haya que dar,
más remota será esa memoria (o dispositivo).

Nodo: este concepto ya es más complicado porque depende de cada fabricante. Por norma general,
podemos hablar de nodo cuando nos referimos a un conjunto: CPU+RAM local.

En un sistema UMA, toda la memoria es local ya que todos los procesadores pueden acceder a ella
por igual gracias a un único bus.
Memoria Compartida Distribuida

En cambio, en una arquitectura NUMA, cada procesador tiene una cantidad de memoria asociada a
él, cada procesador tiene un bus que le conecta con “su” memoria. Ya podemos ver la principal
ventaja: no hay competición por la memoria por parte de los procesadores. Esta sería la memoria
local.

Además, puede haber una memoria global compartida a la que cualquier procesador puede tener
acceso sin distinciones, esta sería la memoria remota.

¿Puede un procesador pedirle a otro procesador que le deje su memoria? La respuesta es sí.
Imaginémonos el procesador P1 con su memoria M1 que no está haciendo absolutamente nada.
Además tenemos el procesador P2 y su memoria M2. Este procesador está “asfixiado” con todo lo
que tiene que hacer y tiene la memoria saturada. En este caso, P2 puede pedirle a P1 permiso para
usar la memoria M1. M1 sería memoria remota para P2.
Memoria Compartida Distribuida

Son denominados sistemas NORMA ( Non Remote Memory Access ) a aquellos en donde ningún
procesador puede tener acceso directo a memoria de otro computador, en contraposición a los
sistemas NUMA.

La diferencia entre NUMA y NORMA, es que en el primero cada procesador puede hacer
referencia de manera directa a cada palabra en el espacio global de direcciones, sólo leyendo o
escribiendo en él.

Las páginas están distribuidas de forma aleatoria entre las memorias, sin afectar los resultados
dados por los programas. Cuando un procesador hace referencia a una memoria remota, el sistema
tiene la opción de traerla o utilizarla de manera remota.

En el caso de computadoras en LAN, los procesadores solo pueden hacer referencia a su memoria
local. Cuando un procesador hace referencia a una página remota, esa página debe ser traída.
Memoria Compartida Distribuida
Memoria Compartida Distribuida

Modelos de DSM

• Con base en páginas
• Con variables compartidas
• Basadas en objetos
Memoria Compartida Distribuida

Tendencias DSM

Dado el desarrollo de las redes de fibra óptica y canales de fibra ( Fibre Channel ), se
agilizarían las transferencias de datos entre multicomputadoras ( actualmente en 1Gbps
y en un futuro, desde 2 hasta 8Gbps ), pudiéndose así inclusive eliminar el caché, lo que
simplificaría en mucho el software utilizado.

El auge de equipos multiprocesadores ( con con varios núcleos – cores ) incrementa la
capacidad de cómputo y el abaratamiento de las memorias ( gigabytes ) permitirá
compartir y gestionar memorias en bloques grandes de una vez.

Más contenido relacionado

La actualidad más candente

MEMORIA VIRTUAL
MEMORIA VIRTUALMEMORIA VIRTUAL
MEMORIA VIRTUALandresinf
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasJosé Antonio Sandoval Acosta
 
Segmetación de instrucciones
Segmetación de instruccionesSegmetación de instrucciones
Segmetación de instruccionesLely
 
Modelos de arquitecturas de computo
Modelos de arquitecturas de computoModelos de arquitecturas de computo
Modelos de arquitecturas de computoYESENIA CETINA
 
Introduccion sistemas operativos
Introduccion sistemas operativosIntroduccion sistemas operativos
Introduccion sistemas operativosMarlon Altamirano
 
Estrategias de aplicaciones para las pruebas de integración
Estrategias  de aplicaciones para las pruebas de integraciónEstrategias  de aplicaciones para las pruebas de integración
Estrategias de aplicaciones para las pruebas de integraciónPablo Navarrete
 
Arquitectura harvard y von neumann
Arquitectura harvard y von neumannArquitectura harvard y von neumann
Arquitectura harvard y von neumanncarlos_graterol
 
Arquitectura Del Computador
Arquitectura Del ComputadorArquitectura Del Computador
Arquitectura Del Computadorivan
 
Bases De Datos Paralelas
Bases De Datos ParalelasBases De Datos Paralelas
Bases De Datos Paralelaspineda2
 
Planificacion del procesador
Planificacion del procesadorPlanificacion del procesador
Planificacion del procesadorManuel Ceron
 
Procesamiento paralelo
Procesamiento paraleloProcesamiento paralelo
Procesamiento paralelowarrionet
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programaciónMay Ibarra
 
Conceptos 2
Conceptos 2 Conceptos 2
Conceptos 2 fredur
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasYESENIA CETINA
 
Arquitectura pipeline
Arquitectura pipelineArquitectura pipeline
Arquitectura pipelinerehoscript
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesadorFernando Camacho
 
PROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTEPROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTEgladysmamani
 

La actualidad más candente (20)

MEMORIA VIRTUAL
MEMORIA VIRTUALMEMORIA VIRTUAL
MEMORIA VIRTUAL
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
 
Segmetación de instrucciones
Segmetación de instruccionesSegmetación de instrucciones
Segmetación de instrucciones
 
Modelos de arquitecturas de computo
Modelos de arquitecturas de computoModelos de arquitecturas de computo
Modelos de arquitecturas de computo
 
Introduccion sistemas operativos
Introduccion sistemas operativosIntroduccion sistemas operativos
Introduccion sistemas operativos
 
Estrategias de aplicaciones para las pruebas de integración
Estrategias  de aplicaciones para las pruebas de integraciónEstrategias  de aplicaciones para las pruebas de integración
Estrategias de aplicaciones para las pruebas de integración
 
Arquitectura harvard y von neumann
Arquitectura harvard y von neumannArquitectura harvard y von neumann
Arquitectura harvard y von neumann
 
Arquitectura Del Computador
Arquitectura Del ComputadorArquitectura Del Computador
Arquitectura Del Computador
 
Bases De Datos Paralelas
Bases De Datos ParalelasBases De Datos Paralelas
Bases De Datos Paralelas
 
Modos de direccionamiento y formatos
Modos de direccionamiento y formatosModos de direccionamiento y formatos
Modos de direccionamiento y formatos
 
Planificacion del procesador
Planificacion del procesadorPlanificacion del procesador
Planificacion del procesador
 
Procesamiento paralelo
Procesamiento paraleloProcesamiento paralelo
Procesamiento paralelo
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Hilo de ejecución
Hilo de ejecuciónHilo de ejecución
Hilo de ejecución
 
Conceptos 2
Conceptos 2 Conceptos 2
Conceptos 2
 
Gestion de Memoria
Gestion de MemoriaGestion de Memoria
Gestion de Memoria
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
Arquitectura pipeline
Arquitectura pipelineArquitectura pipeline
Arquitectura pipeline
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesador
 
PROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTEPROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTE
 

Similar a Unidad VI

Modelos de acceso a la memoria(uma,numa,coma,norma)
Modelos de acceso a la memoria(uma,numa,coma,norma)Modelos de acceso a la memoria(uma,numa,coma,norma)
Modelos de acceso a la memoria(uma,numa,coma,norma)UAEMex
 
Programación Paralela - Conceptos y diseño de sistemas distribuidos
Programación Paralela - Conceptos y diseño de sistemas distribuidosProgramación Paralela - Conceptos y diseño de sistemas distribuidos
Programación Paralela - Conceptos y diseño de sistemas distribuidosJose Moyano
 
Documental de Arquitecturas Avanzadas (Computación)
Documental de Arquitecturas Avanzadas (Computación)Documental de Arquitecturas Avanzadas (Computación)
Documental de Arquitecturas Avanzadas (Computación)Kelwin Gamez
 
Arquitecturas de memoria paralela.pptx
Arquitecturas de memoria paralela.pptxArquitecturas de memoria paralela.pptx
Arquitecturas de memoria paralela.pptxJeysonOrihuela
 
Arquitectura de computadoras
Arquitectura de computadorasArquitectura de computadoras
Arquitectura de computadorascamiche97
 
4 memoria
4 memoria4 memoria
4 memoriaKRNFORD
 
Ordenadores y componentes
Ordenadores y componentesOrdenadores y componentes
Ordenadores y componentescoralhvega
 
Arquitecturas del harvard y von noumann edson
Arquitecturas del harvard y von noumann edsonArquitecturas del harvard y von noumann edson
Arquitecturas del harvard y von noumann edsonedsonbeltran03
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoriaRayzeraus
 
Arquitectura del microcontrolador
Arquitectura del microcontroladorArquitectura del microcontrolador
Arquitectura del microcontroladorJose Chacho
 
Gabriela melero mesa ...
Gabriela melero mesa                                                         ...Gabriela melero mesa                                                         ...
Gabriela melero mesa ...gabrieladwarf
 
Gabriela melero mesa ...
Gabriela melero mesa                                                         ...Gabriela melero mesa                                                         ...
Gabriela melero mesa ...gabrieladwarf
 
Gabriela melero mesa ...
Gabriela melero mesa                                                         ...Gabriela melero mesa                                                         ...
Gabriela melero mesa ...gabrieladwarf
 
Gabriela melero mesa ...
Gabriela melero mesa                                                         ...Gabriela melero mesa                                                         ...
Gabriela melero mesa ...gabrieladwarf
 
Gabriela melero mesa ...
Gabriela melero mesa                                                         ...Gabriela melero mesa                                                         ...
Gabriela melero mesa ...gabrieladwarf
 
Gabriela melero mesa ...
Gabriela melero mesa                                                         ...Gabriela melero mesa                                                         ...
Gabriela melero mesa ...gabrieladwarf
 

Similar a Unidad VI (20)

Modelos de acceso a la memoria(uma,numa,coma,norma)
Modelos de acceso a la memoria(uma,numa,coma,norma)Modelos de acceso a la memoria(uma,numa,coma,norma)
Modelos de acceso a la memoria(uma,numa,coma,norma)
 
Programación Paralela - Conceptos y diseño de sistemas distribuidos
Programación Paralela - Conceptos y diseño de sistemas distribuidosProgramación Paralela - Conceptos y diseño de sistemas distribuidos
Programación Paralela - Conceptos y diseño de sistemas distribuidos
 
Documental de Arquitecturas Avanzadas (Computación)
Documental de Arquitecturas Avanzadas (Computación)Documental de Arquitecturas Avanzadas (Computación)
Documental de Arquitecturas Avanzadas (Computación)
 
Tema 7.3
Tema 7.3Tema 7.3
Tema 7.3
 
Arquitecturas de memoria paralela.pptx
Arquitecturas de memoria paralela.pptxArquitecturas de memoria paralela.pptx
Arquitecturas de memoria paralela.pptx
 
Arquitectura de computadoras
Arquitectura de computadorasArquitectura de computadoras
Arquitectura de computadoras
 
Arq teorico05 von neuman-hardvar
Arq teorico05 von neuman-hardvarArq teorico05 von neuman-hardvar
Arq teorico05 von neuman-hardvar
 
Arquitectura RISC
Arquitectura RISCArquitectura RISC
Arquitectura RISC
 
4 memoria
4 memoria4 memoria
4 memoria
 
Ordenadores y componentes
Ordenadores y componentesOrdenadores y componentes
Ordenadores y componentes
 
Arquitecturas del harvard y von noumann edson
Arquitecturas del harvard y von noumann edsonArquitecturas del harvard y von noumann edson
Arquitecturas del harvard y von noumann edson
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoria
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoria
 
Arquitectura del microcontrolador
Arquitectura del microcontroladorArquitectura del microcontrolador
Arquitectura del microcontrolador
 
Gabriela melero mesa ...
Gabriela melero mesa                                                         ...Gabriela melero mesa                                                         ...
Gabriela melero mesa ...
 
Gabriela melero mesa ...
Gabriela melero mesa                                                         ...Gabriela melero mesa                                                         ...
Gabriela melero mesa ...
 
Gabriela melero mesa ...
Gabriela melero mesa                                                         ...Gabriela melero mesa                                                         ...
Gabriela melero mesa ...
 
Gabriela melero mesa ...
Gabriela melero mesa                                                         ...Gabriela melero mesa                                                         ...
Gabriela melero mesa ...
 
Gabriela melero mesa ...
Gabriela melero mesa                                                         ...Gabriela melero mesa                                                         ...
Gabriela melero mesa ...
 
Gabriela melero mesa ...
Gabriela melero mesa                                                         ...Gabriela melero mesa                                                         ...
Gabriela melero mesa ...
 

Más de Luis Morán

Más de Luis Morán (6)

Unidad V
Unidad VUnidad V
Unidad V
 
Unidad IV
Unidad IVUnidad IV
Unidad IV
 
Unidad II
Unidad IIUnidad II
Unidad II
 
Unidad III
Unidad IIIUnidad III
Unidad III
 
Unidad I
Unidad IUnidad I
Unidad I
 
Programacion en bash
Programacion en bashProgramacion en bash
Programacion en bash
 

Unidad VI

  • 1. Memoria Compartida Distribuida Existen dos sistemas con varios procesadores: multiprocesadores y multicomputadoras. En un multiprocesador, dos o más CPU comparten una memoria principal común. En la multicomputadora cada CPU tiene su memoria particular. Nada se comparte. Esto afecta en el diseño del hardware. En las cumputadoras con multiprocesadores se pueden conectar los procesadores a la memoria mediante un bus, siendo que cuando se tenga una cierta cantidad de procesadores, el bus resulta en un cuello de botella. Por otro lado, multiprocesadores con conmutador son escalables, pero lentos, costosos y complejos. Es más fácil construir multicomputadoras, basadas en computadoras sencillas.
  • 2. Memoria Compartida Distribuida Multiprocesadores con bus Un bus es un canal, con una colección de cables paralelos, algunos con la dirección a la que se desea leer o escribir el CPU, algunos para enviar o recibir datos y el resto para controlar las transferencias. El bus debe estar sincronizado vía reloj, tanto con los procesadores como con la memoria.
  • 4. Memoria Compartida Distribuida Multiprocesadores basados en bus: Multiprocesador: Multiprocesador con ocultamiento:
  • 5. Memoria Compartida Distribuida Multiprocesadores basados en bus: Cuando cualquiera de los CPU desea leer una palabra de la memoria, coloca la dirección de la palabra en el bus y coloca una señal en la línea de control de bus para indicar que desea realizar la lectura. Cuando la memoria ha encontrado la palabra requerida, la coloca en el bus y tiende otra línea de control para anunciar que está lista. Entonces, el CPU lee la palabra. La escritura se realiza de manera análoga. Para evitar que dos o más CPU intenten el acceso a la memoria al mismo tiempo, se necesita de un arbitraje de bus. La desventaja de tener un solo bus, es la sobrecarga.
  • 6. Memoria Compartida Distribuida Multiprocesadores basados en bus: Escritura a través del caché: Cuando un CPU lee por primera vez una palabra de memoria, esa palabra es llevada por el bus y guardada en el caché del CPU solicitante. Si más tarde necesita de esa palabra, el CPU la toma del caché, reduciendo así el tráfico del bus. Se tienen dos posibilidades: • Fracaso de lectura ( palabra no aparece en caché ) • Suceso de lectura ( palabra aparece en el caché )
  • 7. Memoria Compartida Distribuida Multiprocesadores basados en bus: Escritura a través del caché: En el momento de la escritura de una palabra en la memoria por un CPU, este nuevo dato debe ser puesto a disposición de los demás procesadores, siendo por lo tanto necesaria una sincronización de los caché respectivos de los demás procesadores ( consistencia de caché ).
  • 8. Memoria Compartida Distribuida Multiprocesadores con conmutador: Los sistemas multiprocesadores basados en bus funcionan adecuadamente para sistemas pequeños ( alrededor de 64 CPU ), sin embargo no escalan con sistemas de cientos de procesadores. Se puede solucionar: • Reduciendo la cantidad de comunicación • Incrementando la capacidad de comunicación Un método diferente consiste en construir el sistema como una jerarquía. Se colocan algunas CPU en bus, y estos se consideran como una unidad. Se construye el sistema con varias unidades y se conectan mediante un bus entre ellas.
  • 10. Memoria Compartida Distribuida Multiprocesadores NUMA: El ocultamiento de hardware en sistemas grandes no es muy simple. El hardware y protocolos deben mantener estructuras de datos complejas. Como consecuencia,se eleva el costo. Para ello se opta por diseños que no requieran elaborados esquemas de ocultamiento. Una de estas arquitecturas es el procesador NUMA ( acceso no uniforme a memoria ), en contraposición a un sistema multiprocesador tradicional UMA ( acceso uniforme a memoria ). Cuando cualquier CPU escribe un valor en la localidad “a”, una lectura posterior por un procesador diferente regresará el valor recién escrito. En una máquina NUMA, el acceso a memoria remota es mucho más lenta que el acceso local, y no se intenta ocultar el hecho mediante ocultamiento de hardware.
  • 11. Memoria Compartida Distribuida Multiprocesadores NUMA: Propiedades: • Todos los procesadores comparten la misma memoria. • Es posible el acceso a la memoria remota. • El acceso a la memoria remota es más lento que el de la memoria local. • El tiempo del acceso remoto no se oculta mediante el uso de los cachés. NUMA ofrece memoria distribuida para cada procesador, evitando así que afecte al rendimiento del sistema cuando varios procesadores intentan acceder a la misma memoria. Para los problemas de las propagación de datos (comunes en servidores y aplicaciones similares), NUMA puede mejorar el rendimiento utilizando una única memoria compartida por un factor de aproximadamente el número de procesadores (o separando bancos de memoria).
  • 12. Memoria Compartida Distribuida Diferencia entre esquemas NUMA y clústeres En NUMA hay una sola imagen de kernel ejecutándose, en contraposición del modelo convencional donde cada nodo ejecuta una imagen propia. En el cluster, cada nodo es una entidad propia que hay que gestionar, mientras que en NUMA es un componente de un único sistema que hay que gestionar. Es conveniente utilizar NUMA cuando se quiere escalar de forma sencilla y rápida. En el caso de los sistemas NUMA, la complejidad de la gestión se ve reducida ya que sólo administramos un equipo. En cuanto a la conectividad, tampoco es un problema porque cada nodo tiene su memoria y en principio no utilizará la memoria remota. En caso de utilizar la memoria remota, la conectividad se hace internamente mediante buses de elevado ancho de banda y muy baja latencia.
  • 13. Memoria Compartida Distribuida En una arquitectura NUMA hay que distinguir una serie de elementos: Memoria local: en la arquitectura NUMA nos encontramos con que la memoria puede estar asociada a un procesador o no. Si hablamos de la memoria asociada a un procesador, hablamos de memoria local. Memoria remota: por eliminación, esta será la memoria no asociada a un procesador. Distancia: cuando hablamos de distancia, generalmente se hace referencia al número de hops que tienen que darse hasta llegar a un dispositivo, memoria o CPU. Cuantos más hops haya que dar, más remota será esa memoria (o dispositivo). Nodo: este concepto ya es más complicado porque depende de cada fabricante. Por norma general, podemos hablar de nodo cuando nos referimos a un conjunto: CPU+RAM local. En un sistema UMA, toda la memoria es local ya que todos los procesadores pueden acceder a ella por igual gracias a un único bus.
  • 14. Memoria Compartida Distribuida En cambio, en una arquitectura NUMA, cada procesador tiene una cantidad de memoria asociada a él, cada procesador tiene un bus que le conecta con “su” memoria. Ya podemos ver la principal ventaja: no hay competición por la memoria por parte de los procesadores. Esta sería la memoria local. Además, puede haber una memoria global compartida a la que cualquier procesador puede tener acceso sin distinciones, esta sería la memoria remota. ¿Puede un procesador pedirle a otro procesador que le deje su memoria? La respuesta es sí. Imaginémonos el procesador P1 con su memoria M1 que no está haciendo absolutamente nada. Además tenemos el procesador P2 y su memoria M2. Este procesador está “asfixiado” con todo lo que tiene que hacer y tiene la memoria saturada. En este caso, P2 puede pedirle a P1 permiso para usar la memoria M1. M1 sería memoria remota para P2.
  • 15. Memoria Compartida Distribuida Son denominados sistemas NORMA ( Non Remote Memory Access ) a aquellos en donde ningún procesador puede tener acceso directo a memoria de otro computador, en contraposición a los sistemas NUMA. La diferencia entre NUMA y NORMA, es que en el primero cada procesador puede hacer referencia de manera directa a cada palabra en el espacio global de direcciones, sólo leyendo o escribiendo en él. Las páginas están distribuidas de forma aleatoria entre las memorias, sin afectar los resultados dados por los programas. Cuando un procesador hace referencia a una memoria remota, el sistema tiene la opción de traerla o utilizarla de manera remota. En el caso de computadoras en LAN, los procesadores solo pueden hacer referencia a su memoria local. Cuando un procesador hace referencia a una página remota, esa página debe ser traída.
  • 17. Memoria Compartida Distribuida Modelos de DSM • Con base en páginas • Con variables compartidas • Basadas en objetos
  • 18. Memoria Compartida Distribuida Tendencias DSM Dado el desarrollo de las redes de fibra óptica y canales de fibra ( Fibre Channel ), se agilizarían las transferencias de datos entre multicomputadoras ( actualmente en 1Gbps y en un futuro, desde 2 hasta 8Gbps ), pudiéndose así inclusive eliminar el caché, lo que simplificaría en mucho el software utilizado. El auge de equipos multiprocesadores ( con con varios núcleos – cores ) incrementa la capacidad de cómputo y el abaratamiento de las memorias ( gigabytes ) permitirá compartir y gestionar memorias en bloques grandes de una vez.