img no disponible

Unidad 4 Memoria Compartida Distribuida

4.1 Configuraciones Memoria Compartida Distribuida

COMPUTACIÓN PARALELA
Un computador paralelo es un conjunto de procesadores capaces de cooperar en la solución de un problema.
El problema se divide en partes. Cada parte se compone de un conjunto de instrucciones. Las instrucciones de cada parte se ejecutan simultáneamente en diferentes CPUs.
Técnicas computacionales que descomponen un problema en sus tareas y pistas que pueden ser computadas en diferentes máquinas o elementos de proceso al mismo tiempo.
Por qué utilizar computación paralela?

  1. Reducir el tiempo de procesamiento
  2. Resolver problemas de gran embergadura.
  3. Proveer concurrencia.
  4. Utilizar recursos remotos de cómputo cuando los locales son escasos.
  5. Reducción de costos usando múltiples recursos ”baratos” en lugar de costosas supercomputadoras.
  6. Ampliar los límites de memoria para resolver problemas grandes.

El mayor problema de la computación paralela radica en la complejidad de sincronizar unas tareas con otras, ya sea mediante secciones críticas, semáforos o paso de mensajes, para garantizar la exclusión mutua en las zonas del código en las que sea necesario.
La computación paralela está penetrando en todos los niveles de la computación, desde computadoras masivamente paralelas usados en las ciencias de larga escala computacional, hasta servidores múltiples procesadores que soportan procesamiento de transacciones. Los principales problemas originados en cada uno de las áreas básicas de la informática (por ejemplo, algoritmos, sistemas, lenguajes, arquitecturas, etc.) se vuelven aún más complejos dentro del contexto de computación paralela.

4.1.1  De Circuito, basada en bus, anillo o con conmutador

 

Visión general  de la MCD

 

Replicación
(a)  páginas distribuidas en 4 máquinas 
(b)  CPU 0 lee página 10 
 
(c)  CPU 1 lee página 10 

Memoria  compartida en IPC 

#include  <sys/shm.h>
int  shmget(key, size, shmflg); 
int  shmid;
if((shmid  = shmget(IPC_PRIVATE, 4096, IPC_CREAT | 0600))  == -1)
/*Error  al crear memoria compartida*/

 

char  *shmat(shmid, shmaddr, shmflg);
int  shmdt(shmaddr); 
float  *memoria;
shmid  = shmget(llave, MAX * sizeof(float), IPC_CREAT  | 0600);
memoria  = shmat(shmid, 0, 0);
/*Operar  memoria*/
shmdt(memoria);
shmctl(shmid,  IPC_RMID, 0);
Arquitecturas  de MCD 

 

Arquitecturas de MCD 

Existen varias formas de implantar físicamente memoria compartida distribuida, a continuación se describen cada una de ellas.

Memoria basada en circuitos: Existe una única área de memoria y cada micro tiene su propio bus de datos y direcciones (en caso de no tenerlo se vuelve un esquema centralizado).

MCD basada en bus: En este esquema los micros comparten un bus de datos y direcciones por lo que es más barato de implementar, se necesita tener una memoria caché grande y sumamente rápida. MCD basada en bus: En este esquema los micros comparten un bus de datos y direcciones por lo que es más barato de implementar, se necesita tener una memoria caché grande y sumamente rápida.

MCD basada en anillos: Es más tolerante a fallos, no hay coordinador central y se privilegia el uso de la memoria más cercana.

MCD basada en conmutador: Varios micros se conectan entre sí en forma de bus formando un grupo, los grupos están interconectados entre sí a través de un conmutador.

atrasunidad4sig

4.2 Modelos de consistencia.

atrasunidad4sig

4.2.1  Estricta, causal, secuencial, débil, de liberación  y de entrada. 
Consistencia  Estricta 

 

 

Consistencia  Causal 

Consistencia  Causal 

Consistencia  Secuencial 

Consistencia  Secuencial 

 

Consistencia  Secuencial 

Consistencia  PRAM 

Consistencia  PRAM 

P1:  W(x)1                            
P3:                                          R(x)2   R(x)1 
P2:               R(x)1  W(x)2  
P4:                                         R(x)1   R(x)2 
Una sucesión  correcta de 
eventos 
con Consistencia  PRAM
Consistencia  Débil 

 

 

atrasunidad4sig

4.3  MCD en base a páginas. 

 

Esquema general de MCD  basada en páginas

 

 

 

 

atrasunidad4sig

4.4  MCD en base a variables. 

 

 

Munin 

 

Munin 

Munin 

Midway 

 

atrasunidad4sig

4.5  MCD en base a objetos. 

 

¿Qué son los objetos? 

 

 

El  Sistema Linda 

 

Las  n-adas de Linda 

 

          out(“matrix-I”, i, j, 3.14)
          in(“abc”, 2, ?i)
          read(“abc”, 2, ?i)
          eval(X,Y,Z), con X,Y,Z expresiones.
El  Sistema Orca 

 

El  Sistema Orca 

 

 

atrasunidad4