Articulo de referencia

Memoria distribuida

Ilustración de un sistema de memoria distribuida compuesto por tres ordenadores. En informática , la memoria distribuida se refiere a un sistema informático multiprocesador en e...

Ilustración de un sistema de memoria distribuida compuesto por tres ordenadores.

En informática , la memoria distribuida se refiere a un sistema informático multiprocesador en el que cada procesador tiene su propia memoria privada . [ 1 ] Las tareas computacionales solo pueden operar con datos locales, y si se requieren datos remotos, la tarea computacional debe comunicarse con uno o más procesadores remotos. En cambio, un multiprocesador de memoria compartida ofrece un único espacio de memoria utilizado por todos los procesadores. Los procesadores no necesitan saber dónde residen los datos, salvo que esto puede tener consecuencias negativas para el rendimiento y que se deben evitar las condiciones de carrera.

En un sistema de memoria distribuida, normalmente hay un procesador, una memoria y algún tipo de interconexión que permite que los programas de cada procesador interactúen entre sí. La interconexión puede organizarse mediante enlaces punto a punto o bien mediante hardware independiente que proporciona una red de conmutación. La topología de red es un factor clave para determinar cómo escala la máquina multiprocesador . Los enlaces entre nodos pueden implementarse utilizando algún protocolo de red estándar (por ejemplo, Ethernet ), enlaces de red personalizados (utilizados, por ejemplo, en el transputer ) o memorias de doble puerto .

Programación de máquinas de memoria distribuida

La clave para programar sistemas de memoria distribuida reside en cómo distribuir los datos entre las memorias. Dependiendo del problema a resolver, los datos pueden distribuirse de forma estática o moverse entre los nodos. También pueden moverse bajo demanda o enviarse a los nuevos nodos con antelación.

Por ejemplo, si un problema se puede describir como una secuencia donde los datos x se procesan sucesivamente a través de las funciones f , g , h , etc. (el resultado es h ( g ( f ( x )))), entonces esto se puede expresar como un problema de memoria distribuida donde los datos se transmiten primero al nodo que ejecuta f , que pasa el resultado al segundo nodo que calcula g , y finalmente al tercer nodo que calcula h . Esto también se conoce como computación sistólica .

Los datos pueden almacenarse de forma estática en los nodos si la mayoría de los cálculos se realizan localmente y solo es necesario informar a otros nodos sobre los cambios en las aristas. Un ejemplo de esto es la simulación, donde los datos se modelan mediante una cuadrícula y cada nodo simula una pequeña parte de la cuadrícula principal. En cada iteración, los nodos informan a todos los nodos vecinos sobre los nuevos datos de las aristas.

Memoria compartida distribuida

De manera similar, en la memoria compartida distribuida , cada nodo de un clúster tiene acceso a una gran memoria compartida, además de la memoria privada no compartida limitada de cada nodo.

Memoria compartida frente a memoria distribuida frente a memoria compartida distribuida

  • La ventaja de la memoria compartida (distribuida) es que ofrece un espacio de direcciones unificado en el que se pueden encontrar todos los datos.
  • La ventaja de la memoria distribuida es que excluye las condiciones de carrera y que obliga al programador a pensar en la distribución de los datos.
  • La ventaja de la memoria distribuida (compartida) es que resulta más fácil diseñar una máquina que se adapte al algoritmo.

La memoria compartida distribuida oculta el mecanismo de comunicación, pero no la latencia de la misma.

Véase también

Referencias

  1. Pardo, David; Matuszyk, Paweł J.; Puzyrev, Vladimir; Torres-Verdín, Carlos; Nam, Myung Jin; Calo, Victor M. (2021). "Implementación paralela". Modelado de mediciones de resistividad y registro acústico de pozos mediante métodos de elementos finitos . Elsevier. doi : 10.1016/C2019-0-02722-7 . ISBN 978-0-12-821454-1La memoria distribuida se refiere a un sistema informático en el que cada procesador dispone de su propia memoria. Las tareas computacionales operan eficientemente con datos locales, pero cuando se requieren datos remotos, la tarea debe comunicarse (mediante mensajes explícitos) con procesadores remotos para transferirlos. Este tipo de computación paralela es habitual en supercomputadoras equipadas con miles de nodos de computación.
Obtenido de " https://en.wikipedia.org/w/index.php?title=Distributed_memory&oldid=1328312739 "