Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduccin:
Taxonoma de Computadores
Paralelos y Distribuidos
Comp. Paralelos y
Distribuidos
Fuertemente
Dbilmente
acoplados
acoplados
Multiprocesadores
(Mem. Compartida)
Bus
Switched
Multicomputadores
(Mem. Privada)
Bus
Switched
Introduccin:
Taxonoma de Computadores
Paralelos y Distribuidos
Multiprocesadores
Tienen memoria
compartida
Son sistemas altamente
acoplados: cuando se
enva un mensaje el
retardo es corto y la tasa
es alta. Comunes en
sistemas paralelos.
Multicomputadores
Cada procesador tiene su
memoria privada.
Sistemas dbilmente
acoplados: el retardo es
notable y la tasa es baja.
Son ms comunes en
sistemas distribuidos.
Bus: es una sola red, cable o cualquier otro medio que conecta
todas las mquinas.
Switch: puede haber conexiones de mquina a mquina (en distintas
organizaciones).
Introduccin
Sistemas con Memoria Compartida:
Soporte de Software:
Resuelven problenas de secciones crticas
Primitivas de sincronizacin: semforos, contadores,
secuenciadores, monitores.
Comunicacin por espacios de memoria compartidos
Soporte de Hardaware:
Limitado en la escalabilidad
Difcil de construir
El acceso a la memoria es un cuello de botella
( Es difcil disear una mquina donde varios procesadores
utilicen la misma memoria. Si la arquitectura est basada en
bus, no es escalable. Con switches se obtiene una mayor
escalabilidad pero son costosos, lentos, complejos)
Introduccin
Sistemas con Memoria Distribuida:
Soporte de Software:
Pase de mensajes: trae complicaciones adicionales como
prdida de mensajes, prdida de orden, etc.
RPC
RMI
Protocolos de comunicacin: Buffering, bloqueo ...
Soporte de Hardware:
Fcil de construir
No est limitada la escalabilidad
CPU
Mem
CPU
Mem
CPU
Problema
Accin de otros
caches
READ Miss
Ninguna Accin
READ Hit
Ninguna Accin
Actualiza en Memoria y en
cache
Invalida la entrada en
su cache
W1
W1 est en memoria y en el
cach de B en estado limpio.
La memoria est correcta
W1
w1
Limpio
A
w1
Limpio
B
W1
Limpio
W2
W1
Sucio
Sucio
W1
W1
Invlido
W3
w1
Invlido
W3
W1
W3
invlido
invlido Sucio
W1
Home
Blocks
memory table
CPU
b V E O I Posicin
0
1
MEMORIA
PRIVADA
...
Los bloques read-only pueden
estar en varias mquinas.
Los bloques read-write deben
estar en una sola mquina (no
necesariamente la de origen)
n
b: nmero de bloque
V: bit vlido, el bloque est en el
cach y actualizado
E: bit exclusivo, copia nica
O: bit de origen
I: bit de interrupcin
A B C
A B C
A B C
A B C
A B C
A B C
A B C
A B C
Bus intra
cluster
Cluster
Bus inter
clusters
Bus inter
super clusters
15
BLOQUES 0
...
1023
CLUSTERS
ESTADO:
UNCACHED: La nica copia est aqu
CLEAN: memoria correcta, puede haber
ms copias
DIRTY: memoria incorrecta, slo un cach
tiene el bloque
Arquitectura DASH
En todo momento cada bloque tiene un propietario
Para un bloque uncached o clean el cluster de
origen del bloque es el propietario
Para un bloque dirty el cluster que contiene la
nica copia es el propietario
Para escribir en un bloque clean primero hay que
encontrar e invalidar todas las copias existentes
(el cluster propietario es el que en ese momento es el
responsable del bloque y no necesariamente es el
cluster origen)
Arquitectura DASH
Protocolo de lectura:
Chequea en su propio cach, si no est
Pone el requerimiento en el bus local, si algn cach local
lo tiene se realiza una copia cach-to-cach. Si el bloque
est clean slo se realiza la copia, si el bloque est dirty
se informa al directorio de origen para que cambie el
estado a dirty and shared
Si el bloque no est presente en ningn cach del cluster,
se enva el requerimiento al cluster de origen del bloque
(se determina por los 4 bits ms altos de su direccin)
El cluster origen puede ser el mismo que realiz el
requerimiento, en este caso no se enva fsicamente el
paquete de requerimiento
Arquitectura DASH
Protocolo de lectura (cont):
El hardware del directorio del cluster de origen examina
el estado del bloque:
Uncached or clean: el hardware trae el bloque de la
memoria principal, lo enva al cluster solicitante y
marca en el directorio que tal bloque est cached en el
cluster solicitante.
Dirty: el hardware del directoio busca la identidad del
cluster que lo contiene y le hace forward del
requerimiento. El cluster final que contiene el bloque
dirty enva el bloque al cluster solicitante, lo marca
como clean (ahora es compartido) y enva un mensaje al
cluster origen para que actualice la memoria y le cambie
el estado a clean
Arquitectura DASH
Protocolo de escritura:
Arquitectura DASH
Protocolo de escritura (cont):
Uncached: se marca dirty y se enva al cluster
que lo requiere.
Clean: se invalidan todas las copias y se sigue el
proceso de uncached
Dirty: se hace forward del requerimiento al
cluster que actualmente tiene el bloque. Este
cluster invalida su propia copia y satisface el
requerimiento
Cache
block
Switched
MultiPro.
Dash
Cache
block
Software-controlled caching
Managed by language runtime
system
Managed by OS
PageBased
DSM
Numa
Buterfly
Page
Ivy
Page
SharedVariable
DSM
Munin
Data
Structure
ObjectBased
DSN
Linda, Orca
CORBA
Object
Multiprocesadores
DSM
NUMA
Pg.
Var. Comp.
Obj.
Espacio lineal de
memoria compartida
Si
Si
Si
Si
No
No
Operaciones posibles
R-W
R-W
R-W
R-W
R-W
General
El acceso remoto es
posible en Hw
Si
Si
Si
No
No
No
Si
Si
Si
No
No
No
MMU
MMU
MMU
OS
Runtime
System
Runtime
System
Medio de transferencia
Bus
Bus
Bus
Red
Red
Red
La migracin la realiza
Hw
Hw
Sw
Sw
Sw
Sw
Unidad de transferencia
Bloque
Bloque
Pgina
Pgina
Var.
Compartida
Objeto
Mtodos de
encapsulamiento
No
No
No
No
No
Si
Replicacin
Replicar los bloques de slo lectura
Replicar todos los bloques: en este caso se
tienen que tomar acciones para mantener la
consistencia de los datos.
0 1 2 3
0
14 15
13 15 5
Cpu1
Cpu4
Estructura
Orientada a bytes
Una palabra
Un bloque (varias palabras)
Una pgina
Un segmento (mltiples pginas)
Variables compartidas
Objetos
Centralizado: el manager es un
nico nodo. Los accesos a los
datos se negocian con el manager.
Es un cuello de botella.
Manager
Request
Reply
Request
Owner
Reply
Manager
Request
Request
Owner
Reply
Cpu 2
2 3 4
1
3
4
Cpu 3
1 2 3
5 2
4
Cpu 4
3 4
2
copyset
page
Polticas de Escritura
Se debe asegurar que un procesador no lea un
dato invalido despus que se ha realizado una
operacin de escritura. Existen dos opciones:
Escritura actualizante
Escritura Invalidante
Polticas de Escritura
Escritura actualizante:
Las escrituras de un proceso se realizan en forma local
y se envan a todos los procesos que posean una copia
del dato.
Permite mltiples lectores y mltiples escritores.
Se requieren broadcast o multidifusiones ordenadas
(en algunos casos se utiliza un ente centralizado que
garantiza el orden). De esta forma todos los
procesos ven todas las actualizaciones en el mismo
orden que se realizan.
Orca es un sistema que implementa escritura
actualizante. Munin soporta escritura actualizante
como una opcin.
Polticas de Escritura
Escritura invalidante:
Mltiples lectores/un solo escritor.
Cuando un proceso intenta escribir un dato, se enva un
mensaje a quienes tienen copias para invalidarlas y se
esperan los Acks, antes que la escritura tenga lugar.
Las actualizaciones se propagan cuando se leen los
datos y se pueden realizar varias actualizaciones
consecutivas sin necesidad de realizar ninguna
comunicacin.
Se tienen que invalidar copias de slo lectura
Polticas de Reemplazo
Mejores candidatos a vctima:
Una pgina de la que existe otra copia cuyo dueo
es otro procesador
Una pgina replicada de la cual se es propietario.
Cuando no existen rplicas: La pgina vlida usada
menos recientemente (LRU). Qu se hace con la
victima?
Escribirla a disco
Pasarla al propietario:
Esttico
Dinmico: procesador que tenga mas memoria libre.
Modelos de Consistencia de
la Memoria
Un modelo de consistencia de memoria
[Mosberger 1993] especifica las garantas
de consistencia que un sistema otorga sobre
los valores que los procesos leen de los
objetos, dado que en realidad acceden a una
rplica de cada objeto y que mltiples
procesos pueden actualizar los objetos.
Modelos de Consistencia de
la Memoria
La principal interrogante que se plantea al
caracterizar un modelo de consistencia de
memoria es: cundo se realiza un acceso de
lectura sobre una posicin de memoria, qu
accesos de escritura son candidatos para que sus
valores sean proporcionados en la lectura?
Cualquier lectura realizada antes.
La ltima lectura,
Etc.
Modelos de Consistencia de
la Memoria
Los modelos que estudiaremos son:
Consistencia estricta
Consistencia secuencial
Consistencia causal
PRAM
Consistencia dbil
Consistencia relajada
Consistencia Estricta
Cualquier lectura a la localidad de memoria x retorna el
valor almacenado por la ltima operacin de escritura (antes
de la lectura).
Supone la existencia de un tiempo global. Determinar cul
fue la escritura ms reciente no siempre es posible.
En un solo procesador la consistencia estricta es lo esperado.
A=1
A=2
print(A)
T3
T0
T1
T2
Write(x) Read(x)Write(x)Llega a B peticin de A para escribir X
(B)
(A)
(B)
A
2 segs
Consistencia Estricta
En un sistema distribuido es razonable exigir consistencia
estricta?
Notacin:
P1, P2 : procesos
W(x)a : A la variable x se le asigna el valor a
R(y)b : Se lee b en la variable y
Se supone que el valor inicila de todas las variables es 0.
P1: W(x)1
P2:
Tiempo
W(x)2
Consistencia Estricta
P1: W(x)1
P2:
R(x)0 R(x)1
P1: W(x)1
P2:
P3:
P1: W(x)1
W(x)2
P2:
R(x)2
P3:
W(x)2
R(x)1
Consistencia Estricta
Si hay un cambio en una zona de memoria, todas
las lecturas observarn el nuevo valor sin importar
cun pronto se est haciendo la lectura (respecto a
la escritura) o dnde estn localizados los procesos
que realizan las operaciones.
Si se hace una lectura se obtiene el valor actual,
sin importar cun rpido se realiza la prxima
escritura.
Consistencia Secuencial
(Lamport, 1979)
Consistencia Secuencial
Cuando se ejecutan procesos en paralelo sobre
diferentes mquinas, cualquier mezcla de
ejecucin es un resultado aceptable, no obstante
todos los procesos deben ver la misma secuencia
de referencias a memoria. Se respeta el orden de
los programas.
Write(x)
P1: W(x)1
P2:
Read(x)
Read(x)
P1: W(x)1
R(x)1 R(x)1
Consistencia Secuencial
a=1
print(b,c)
(a)
a=1
print (b,c)
b=1
print (a,c)
c=1
print(a,b)
b=1
print(a,c)
c=1
print(a,b)
(c)
(b)
a=1
b=1
print (a,c)
print (b,c)
c=1
print(a,b)
a=1
c=1
print (a,b)
print (a,c)
a=1
print(b,c)
000000 y 001001
son resultados
invlidos
Los tres resultados
son vlidos y las
aplicaciones deben funcionar
bien en presencia de cualquiera
de ellos
Consistencia Secuencial
Un sistema de consistencia secuencial se
puede implementar utilizando un nico
servidor que administra los datos
compartidos. Todos los procesos envan sus
operaciones de lectura y escrtitura al
servidor que las ordena en forma global.
Consistencia Causal
(Hutto and Ahamad, 1990)
P1 escribe X
P2 lee X escribe Y (Y puede depender del valor ledo de X)
Consistencia Causal
Si dos procesos escriben espontneamente y
simultneamente una variable, estos accesos
no estn relacionados causalmente.
Las operaciones que no estn relacionadas
causalmente se dice que son concurrentes
Consistencia Causal
P1: W(x)1
P2:
W(x)3
R(x)1
W(x)2
P3:
R(x)1
R(x)3
P4:
R(x)1
R(x)2
Hay consistencia
causal pero no
consistencia
R(x)2
secuencial o consistencia
R(x)3
estricta
Consistencia Causal
P1: W(x)1
P2:
R(x)1 W(x)2
P3:
R(x)2 R(x)1
P4:
R(x)1 R(x)2
Violacin de la Consistencia
Causal
P1: W(x)1
P2:
W(x)2
P3:
R(x)2 R(x)1
P4:
R(x)1 R(x)2
Consistencia Causal
Implementacin: grafo de dependencia para
determinar cules operaciones son
dependientes de otras y cules son
concurrentes. Un ente centralizado.
Consistencia PRAM
(Pipelined RAM)
(Lipton and Sandberg 1988)
P3:
P4:
R(x)1 W(x)2
R(x)2 R(x)1
R(x)1 R(x)2
Consistencia PRAM
(Pipelined RAM)
(Lipton and Sandberg 1988)
R(x)1
W(x)2
R(x)2 R(x)1 R(x) 3
R(x)1 R(x)2 R(x) 3
Consistencia PRAM
a=1
print (b,c)
b=1
print (a,c)
c=1
print(a,b)
a=1
b=1
print (a,c)
print (b,c)
c=1
print(a,b)
(a)
a=1
if (b == 0) kill (p2)
(a)
(b)
b=1
print (a,c)
c=1
print (a,b)
a=1
print(b,c)
(c)
b=1
if (a == 0) kill (p1)
(b)
Consistencia PRAM
a=1
if (b == 0) kill (p2)
(a)
b=1
if (a == 0) kill (p1)
(b)
b=1
if (a == 0) kill (p1)
a=1
If ...
Consistencia Dbil
(Dubois et al. 1986)
Consistencia Dbil
(Dubois et al. 1986)
Consistencia Dbil
(Dubois et al. 1986)
Consistencia Dbil
Variables ordinarias
P1: W(x)1 W(x)2 S
P2:
R(x)1 R(x)2 S
P3:
R(x)2 R(x)1 S
S R(x)1
Consistencia Relajada
(Gharachorloo et al., 1990)
Consistencia Relajada
Consistencia Relajada
Posible implementacin:
Existe un administrador de sincronizacin.
En un acquire se solicita un acceso sobre un lock al
manger. Si no hay competencia el manager lo otorga.
Al llegar al release se propagan los cambios a otras
mquinas . Al recibirse el Ack de todas las mquinas
se informa al manager de la liberacin del lock
Modelos de Consistencia
Consistencia: Modelos que
no usan operaciones de
sincronizacin
Descripcin
Estricta
Secuencial
Causal
PRAM
Modelos de Consistencia
Consistencia: Modelos con
Descripcin
operaciones de sincronizacin
Dbil
Relajada
Conclusiones
DSM es una abstraccin de memoria compartida
que sirve de alternativa a la comunicacin basada
en el pase de mensajes.
Su rendimiento es comparable al rendimiento de
pase de mensajes para ciertas aplicaciones
paralelas. El rendimiento depende en gran medida
de las aplicaciones.
Entre los principales aspectos de diseo e
implementacin se encuentran: la estructura, los
modelos de consistencia, la utilizacin de
protocolos de escritura actualizante o invalidante y
la granularidad.