SlideShare a Scribd company logo
1 of 18
Download to read offline
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.

More Related Content

What's hot

Unidad 4 matematicas aplic a las comunic
Unidad 4 matematicas aplic a las comunicUnidad 4 matematicas aplic a las comunic
Unidad 4 matematicas aplic a las comunicDomingo de la Cerda
 
Von neumann vs harvard
Von neumann vs harvardVon neumann vs harvard
Von neumann vs harvardManzelot
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidosVictor Milano
 
Centro de computo adquicicion de software y hardware
Centro de computo adquicicion de software y hardwareCentro de computo adquicicion de software y hardware
Centro de computo adquicicion de software y hardwareLuis Alberto HeMo
 
Instalacion de cassandra
Instalacion de cassandraInstalacion de cassandra
Instalacion de cassandraLuis Alvarado
 
Modelos de arquitecturas de computo
Modelos de arquitecturas de computoModelos de arquitecturas de computo
Modelos de arquitecturas de computoYESENIA CETINA
 
ADMINISTRACION DE BASE DE DATOS.ppt
ADMINISTRACION DE BASE DE DATOS.pptADMINISTRACION DE BASE DE DATOS.ppt
ADMINISTRACION DE BASE DE DATOS.pptCristianFlasher1
 
Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.Julicamargo
 
Administración de la Memoria, organización y administración del almacenamient...
Administración de la Memoria, organización y administración del almacenamient...Administración de la Memoria, organización y administración del almacenamient...
Administración de la Memoria, organización y administración del almacenamient...Javier Alvarez
 
Tipos de-datos-power-designer
Tipos de-datos-power-designerTipos de-datos-power-designer
Tipos de-datos-power-designerWen MuZo
 
Nuevas tecnologías y aplicaciones de los sistemas de bases de datos
Nuevas tecnologías y aplicaciones de los sistemas de bases de datosNuevas tecnologías y aplicaciones de los sistemas de bases de datos
Nuevas tecnologías y aplicaciones de los sistemas de bases de datosHugo Alberto Rivera Diaz
 
Sistema Distribuidos
Sistema DistribuidosSistema Distribuidos
Sistema DistribuidosJohnPaulito
 
Arquitectura Multinivel
Arquitectura MultinivelArquitectura Multinivel
Arquitectura Multinivelurumisama
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidosnathalyrivasdiaz
 
Organización y arquitectura de computadores
Organización y arquitectura de computadoresOrganización y arquitectura de computadores
Organización y arquitectura de computadoresSofylutqm
 
Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoriaALASBLANKS
 

What's hot (20)

Unidad 4 matematicas aplic a las comunic
Unidad 4 matematicas aplic a las comunicUnidad 4 matematicas aplic a las comunic
Unidad 4 matematicas aplic a las comunic
 
Von neumann vs harvard
Von neumann vs harvardVon neumann vs harvard
Von neumann vs harvard
 
JAVA DATABASE CONNECTIVITY (JDBC)
  JAVA DATABASE CONNECTIVITY (JDBC)  JAVA DATABASE CONNECTIVITY (JDBC)
JAVA DATABASE CONNECTIVITY (JDBC)
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Centro de computo adquicicion de software y hardware
Centro de computo adquicicion de software y hardwareCentro de computo adquicicion de software y hardware
Centro de computo adquicicion de software y hardware
 
Instalacion de cassandra
Instalacion de cassandraInstalacion de cassandra
Instalacion de cassandra
 
Modelos de arquitecturas de computo
Modelos de arquitecturas de computoModelos de arquitecturas de computo
Modelos de arquitecturas de computo
 
ADMINISTRACION DE BASE DE DATOS.ppt
ADMINISTRACION DE BASE DE DATOS.pptADMINISTRACION DE BASE DE DATOS.ppt
ADMINISTRACION DE BASE DE DATOS.ppt
 
Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.
 
Generalizacion con power designer
Generalizacion con power designerGeneralizacion con power designer
Generalizacion con power designer
 
Administración de la Memoria, organización y administración del almacenamient...
Administración de la Memoria, organización y administración del almacenamient...Administración de la Memoria, organización y administración del almacenamient...
Administración de la Memoria, organización y administración del almacenamient...
 
Tipos de-datos-power-designer
Tipos de-datos-power-designerTipos de-datos-power-designer
Tipos de-datos-power-designer
 
Nuevas tecnologías y aplicaciones de los sistemas de bases de datos
Nuevas tecnologías y aplicaciones de los sistemas de bases de datosNuevas tecnologías y aplicaciones de los sistemas de bases de datos
Nuevas tecnologías y aplicaciones de los sistemas de bases de datos
 
Sistema Distribuidos
Sistema DistribuidosSistema Distribuidos
Sistema Distribuidos
 
Arquitectura Multinivel
Arquitectura MultinivelArquitectura Multinivel
Arquitectura Multinivel
 
Arquitectura harvard
Arquitectura harvardArquitectura harvard
Arquitectura harvard
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Organización y arquitectura de computadores
Organización y arquitectura de computadoresOrganización y arquitectura de computadores
Organización y arquitectura de computadores
 
PAGINACION Y SEGMENTACION DE MEMORIA
PAGINACION Y SEGMENTACION DE MEMORIAPAGINACION Y SEGMENTACION DE MEMORIA
PAGINACION Y SEGMENTACION DE MEMORIA
 
Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoria
 

Similar to Unidad VI

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
 
Gabriela melero mesa ...
Gabriela melero mesa                                                         ...Gabriela melero mesa                                                         ...
Gabriela melero mesa ...gabrieladwarf
 

Similar to Unidad VI (20)

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 ...
 
Gabriela melero mesa ...
Gabriela melero mesa                                                         ...Gabriela melero mesa                                                         ...
Gabriela melero mesa ...
 

More from Luis Morán

More from 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.