Memoria compartida distribuida

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

En informática, la memoria compartida distribuida (DSM) es una forma de arquitectura de memoria en la que las memorias físicamente separadas se pueden abordar como un único espacio de direcciones compartido. El término "compartido" no significa que haya una única memoria centralizada, sino que el espacio de direcciones es compartido; es decir, la misma dirección física en dos procesadores se refiere a la misma ubicación en la memoria. Espacio de direcciones global distribuido (DGAS), es un término similar para una amplia clase de implementaciones de software y hardware, en las que cada nodo de un clúster tiene acceso además a la memoria compartida. a la memoria privada (es decir, no compartida) de cada nodo.

Descripción general

Un sistema de memoria distribuida, a menudo llamado multicomputadora, consta de múltiples nodos de procesamiento independientes con módulos de memoria locales que están conectados por una red de interconexión general. Los sistemas de software DSM se pueden implementar en un sistema operativo o como una biblioteca de programación y se pueden considerar como extensiones de la arquitectura de memoria virtual subyacente. Cuando se implementan en el sistema operativo, dichos sistemas son transparentes para el desarrollador; lo que significa que la memoria distribuida subyacente está completamente oculta a los usuarios. Por el contrario, los sistemas de software DSM implementados a nivel de biblioteca o lenguaje no son transparentes y los desarrolladores generalmente tienen que programarlos de manera diferente. Sin embargo, estos sistemas ofrecen un enfoque más portátil para las implementaciones de sistemas DSM. Un sistema DSM implementa el modelo de memoria compartida en un sistema de memoria físicamente distribuida.

DSM se puede lograr tanto a través de software como de hardware. Los ejemplos de hardware incluyen circuitos de coherencia de caché y controladores de interfaz de red. Hay tres formas de implementar DSM:

  • Enfoque basado en la página usando memoria virtual
  • Enfoque compartido-variable utilizando rutinas para acceder a variables compartidas
  • Enfoque basado en objetos, acceso ideal a datos compartidos mediante disciplina orientada hacia objetos

Ventajas

  • Escala bien con un gran número de nodos
  • El mensaje que pasa está oculto
  • Puede manejar bases de datos complejas y grandes sin replicación o enviar los datos a procesos
  • Generalmente más barato que usar un sistema multiprocesador
  • Proporciona gran espacio de memoria virtual
  • Los programas son más portátiles debido a interfaces de programación comunes
  • Los programadores escudos de enviar o recibir primitivos

Desventajas

  • Generalmente más lento al acceso que la memoria compartida no distribuida
  • Debe proporcionar protección adicional contra accesos simultáneos a datos compartidos
  • Puede incurrir en una pena de ejecución
  • Poco control programador sobre los mensajes reales generados
  • Los programadores necesitan entender modelos de consistencia para escribir programas correctos

Comparación con el paso de mensajes

Mensaje que pasa Memoria compartida distribuida
Las variables deben ser marshaladas Las variables se comparten directamente
Costo de la comunicación es obvio Costo de la comunicación es invisible
Los procesos están protegidos por tener espacio de dirección privada Procesos podrían causar error alterando datos
Los procesos deben ejecutarse al mismo tiempo La ejecución de los procesos puede ocurrir con vidas no superpuestas

Los sistemas de software DSM también tienen la flexibilidad de organizar la región de memoria compartida de diferentes maneras. El enfoque basado en páginas organiza la memoria compartida en páginas de tamaño fijo. Por el contrario, el enfoque basado en objetos organiza la región de memoria compartida como un espacio abstracto para almacenar objetos compartibles de tamaños variables. Otra implementación comúnmente vista utiliza un espacio de tupla, en el que la unidad de intercambio es una tupla.

La arquitectura de memoria compartida puede implicar separar la memoria en partes compartidas distribuidas entre los nodos y la memoria principal; o distribuir toda la memoria entre nodos. Un protocolo de coherencia, elegido de acuerdo con un modelo de coherencia, mantiene la coherencia de la memoria.

Coherencia de la memoria del directorio

La coherencia de la memoria es necesaria para que el sistema que organiza el DSM sea capaz de rastrear y mantener el estado de los bloques de datos en los nodos de las memorias que componen el sistema. Un directorio es uno de esos mecanismos que mantiene el estado de los bloques de caché que se mueven por el sistema.

Estados

State diagram of a block of memory in a DSM. A block is "owned" if one of the nodes has the block in state EM.
Esquema estatal de un bloque de memoria en un DSM. Un bloque es "propiado" si uno de los nodos tiene el bloque en estado EM.

Un DSM básico rastreará al menos tres estados entre nodos para cualquier bloque determinado en el directorio. Habrá algún estado para dictar el bloque como no almacenado en caché (U), un estado para dictar un bloque como de propiedad exclusiva o propiedad modificada (EM) y un estado para dictar un bloque como compartido (S). A medida que los bloques ingresan a la organización del directorio, pasarán de U a EM (estado de propiedad) en el nodo inicial. El estado puede pasar a S cuando otros nodos comienzan a leer el bloque.

Existen dos métodos principales para permitir que el sistema rastree dónde se almacenan en caché los bloques y en qué condiciones en cada nodo. La solicitud-respuesta centrada en el hogar utiliza el hogar para atender solicitudes y controlar estados, mientras que la centrada en el solicitante permite que cada nodo impulse y administre sus propias solicitudes a través del hogar.

Solicitud y respuesta centradas en el hogar

En un sistema centrado en el hogar, el DSM evitará tener que manejar carreras de solicitud-respuesta entre nodos al permitir que solo se realice una transacción a la vez hasta que el nodo principal haya decidido que la transacción ha finalizado, generalmente cuando el nodo principal haya decidido que la transacción ha finalizado. recibió la respuesta de cada procesador que respondió a la solicitud. Un ejemplo de esto es el modo de fuente doméstica QPI de Intel. Las ventajas de este enfoque son que es fácil de implementar, pero su estrategia de solicitud-respuesta es lenta y está amortiguada debido a las limitaciones del nodo principal.

Solicitud y respuesta centradas en el solicitante

En un sistema centrado en el solicitante, el DSM permitirá que los nodos se comuniquen a voluntad entre sí a través del hogar. Esto significa que varios nodos pueden intentar iniciar una transacción, pero esto requiere consideraciones adicionales para garantizar la coherencia. Por ejemplo: cuando un nodo está procesando un bloque, si recibe una solicitud para ese bloque de otro nodo, enviará un NAck (Reconocimiento negativo) para informarle al iniciador que el nodo de procesamiento no puede cumplir con esa solicitud de inmediato. Un ejemplo de esto es el modo de fuente de rastreo QPI de Intel. Este enfoque es rápido pero no evita naturalmente las condiciones de carrera y genera más tráfico de autobuses.

Modelos de consistencia

Did you mean:

The DSM must follow certain rules to maintain consistency over how read and write order is viewed among nodes, called the system 's consistency model.

Supongamos que tenemos n procesos y Mi operaciones de memoria para cada proceso i, y que todas las operaciones se ejecutan secuencialmente. Podemos concluir que (M1 + M2 + … + Mn)!/(M1! M2 !… Mn!) son posibles entrelazamientos de las operaciones. El problema con esta conclusión es determinar la exactitud de las operaciones entrelazadas. La coherencia de la memoria para DSM define qué entrelazados están permitidos.

Sequential invocations and responses in DSM
Invocaciones y respuestas secuenciales en el DSM

Replicación

Hay dos tipos de algoritmos de replicación. Lectura de replicación y escritura de replicación. En la replicación de lectura, varios nodos pueden leer al mismo tiempo, pero solo un nodo puede escribir. En la replicación de escritura, varios nodos pueden leer y escribir al mismo tiempo. Las solicitudes de escritura son manejados por un secuenciador. La replicación de datos compartidos en general tiende a:

  • Reducir el tráfico de red
  • Promover un mayor paralelismo
  • Resultado en menos fallas de página

Sin embargo, preservar la coherencia y la coherencia puede resultar más difícil.

Coherencia de lanzamiento y entrada

  • Congruencia de liberación: cuando un proceso sale de una sección crítica, se propagan nuevos valores de las variables a todos los sitios.
  • Congruencia de entrada: cuando un proceso entra en una sección crítica, actualizará automáticamente los valores de las variables compartidas.
    • Consistencia basada en la vista: es una variante de la consistencia de entrada, excepto las variables compartidas de una sección crítica son detectadas automáticamente por el sistema. La aplicación de la coherencia basada en la visión es la VODCA que tiene un rendimiento comparable al MPI en las computadoras de racimo.

Ejemplos

  • Kerrighed
  • Open SSI
  • MOSIX
  • TreadMarks
  • VODCA
  • DIPC

Contenido relacionado

Parcialidad

Sesgo es un peso desproporcionado a favor o en contra de una idea o cosa, generalmente de una manera cerrada, perjudicial, o injusto. Los sesgos pueden ser...

FX-87

FX-87 es un lenguaje funcional de tipos polimórficos basado en un sistema de análisis estático de programas en el que cada expresión tiene dos propiedades...

Datos de paquetes digitales celulares

Paquetes de datos digitales celulares era un servicio de datos móviles de área amplia que utilizaba el ancho de banda no utilizado que normalmente utilizan...
Más resultados...
Tamaño del texto: