Vous êtes sur la page 1sur 19

Taxonoma de Computadores Paralelos y Distribuidos

Fuertemente acoplados Comp. Paralelos y Distribuidos Dbilmente acoplados

Memoria Compartida Distribuida


Profs. Yudith CardinaleMariela Curiel Sep Dic 2002

Multiprocesadores (Mem. Compartida )

Multicomputadores (Mem. Privada)

Bus

Switched

Bus

Switched

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. ? Soporte

Multiprocesadores
de Software:
? Para comunicacin: un proceso escribe y los otros

leen.
? Para

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).

la sincronizacin: se usan regiones crticas y existen herramientes que ofrecen la exclusin mutua (semforos, contadores, monitores) ? La comunicacin y sincronizacin son problemas que han sido ampliamente estudiados. ? Los programas son ms cortos y fciles de comprender que los programas escritos con pase de mensajes.

Multiprocesadores
? Soporte

Multicomputadores
? Soporte

de Hardware:

de Software:

?Es difcil disear una mquina donde varios

?La comunicacin se hace a travs del pase de

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.

mensajes, lo cul trae complicaciones adicionales: prdida de mensajes, prdida de orden, etc. ?Se han propuesto algunas soluciones para facilitar la programacin: RPC, RMI, etc.
? Soporte
? Fcil

de Hardware:

de construir ? Son escalables

Sistemas con Memoria Compartida Distribuida (DSM)


?

Sistemas con Memoria Compartida Distribuida (DSM)


?

Toma las ventajas de los enfoques anteriores: software de los sistemas de memoria compartida y el hardware de los sitemas de memoria distribuida ? Coleccin de estaciones de trabajo conectadas por una red, compartiendo un nico espacio de memoria virtual ? La ubicacin de los datos, su movimiento, etc, lo maneja el sistema de memoria compartida distribuida. ? Implementado sobre pase de mensajes

[Li, 1986] y [Li and Hudak, 1989] fueron los primeros en proponer el paradigma de Memoria Compartida Distribuida.
? Coleccin de estaciones de trabajo conectadas por una

LAN que comparten un solo espacio de direcciones paginado. ? Una referencia a una pgina causa una falla de pgina que atrapa el SOP. Este ltimo enva un mensaje a la mquina remota, para solicitar la pgina. ? La comunicacin y sincronizacin se realiza a travs de la memoria, la comunicacin es transparente para los procesos.

Sistemas con Memoria Compartida Distribuida (DSM)


? ?

Arquitecturas de Memoria Compartida


Los multiprocesadores de Memoria Compartida constituyen la inspiracin de los sistemas de memoria compartida distribuida

Es un sistema fcil de programar y fcil de construir pero el desempeo es pobre. Durante muchos aos la investigacin se ha enfocado en tratar de memojarar este rendimiento. Las soluciones buscan principalmente reducir el trfico de red.
? Compartir variables u objetos en lugar de pginas ? Uso de caches (surge el problema de la consistencia)

Arquitecturas de Memoria Compartida


? Memoria

Multiprocesadores Basados en Buses


Snooping cache: Alivia la sobrecarga del bus y aumenta el rendimiento

con circuitos (on-chip-memory):


CPU

CPU

Mem CPU Mem CPU


?Problema

Es posible pero es complicado, costoso e inusual


CPU

con el cache: Posibilidad de Memoria Inconsistente ?Solucin: Protocolo de consistencia write-through cache Protocolo de consistencia write-once

Multiprocesadores Basados en Buses


? Protocolo

Multiprocesadores Basados en Buses


? Qu

de consistencia write-through:

pasa ante una escritura:

? Ante una falla de lectura, se lee la palabra

? Si la palabra no est en el

de la memoria y se carga en el cache.


? Si la palabra se necesita de nuevo, se toma

del cache.
?Es posible para una misma palabra estar a la

vez en diferentes caches.

cache se realiza la escritura en la memoria y se trae el dato al cache. ? Si est en el cache (una sola copia) la palabra se actualiza en el cache y en la memoria. ? Si la palabra est en ms de un CPU: se actualiza en el cache y en la memoria y se invalidan el resto de las entradas. Al final de la escritura slo un cache tendr la palabra correcta y estar actualizada en la memoria.

Multiprocesadores Basados en Buses


? Protocolo Evento

de consistencia write-through cache:


Accin de otros caches Ninguna Accin Ninguna Accin Invalida la entrada en su cache Invalida la entrada en su cache

? Protocolo de consistencia write-through : ?En lugar de invalidar se puede actualizar las

Multiprocesadores Basados en Buses

Accin del cache del CPU que realiza el evento

READ Miss Trae el dato desde Memoria y actualiza en cache READ Hit Lee localmente del cache WRITE Miss Actualiza en Memoria y trae el dato a cache WRITE Hit Actualiza en Memoria y en cache

copias ante un write, pero las actualizaciones son ms costosas (direccin mas los nuevos datos) . Se necesitan ms ciclos de CPU. ?El protocolo es fcil de comprender e implementar, pero su principal desventaja es que todas las escrituras usan el bus, lo que ocasiona un desempeo pobre.

Protocolo de consistencia write-once:


es difcil que otro lo requiera

Multiprocesadores Basados en Buses

? Protocolo
A B

Multiprocesadores Basados en Buses


de consistencia write-once:
C W1

? Supone que una vez que un CPU se apodera de un dato, ? El cache es dividido en bloques que pueden estar en

uno de estos tres estados:


? ?

Invlido: no contiene datos vlidos Limpio: la memoria est actualizada, el bloque puede estar en otros caches Sucio: la memoria est incorrecta, ningn otro cache puede contenerlo

w1 limpio

W1 est en memoria y en el cache de B en estado limpio. La memoria est correcta

W1

? La idea es que si varios quieren leer, comparten el

dato y puede estar en varios caches. Si el dato es de escritura slo un cache lo puede contener y realiza slo actualizaciones locales

w1 limpio

w1 limpio

A lee W1 desde la memoria, B no es afectado. La memoria est correcta

? Protocolo
A B

Multiprocesadores Basados en Buses


de consistencia write-once (cont.):
C W= W1

? Protocolo
A B

Multiprocesadores Basados en Buses


de consistencia write-once (cont.):
C W1
C quiere acceder al contenido de W, A ve la solicitud al husmear el bus, proporciona el valor e invalida su entrada. C tiene ahora la nica copia vlida.

w2 sucio

w1 invlido

A escribe un valor W2, B husmea en el bus, ve la escritura e invalida su entrada. La copia de A se marca como sucia.

w3 w1 w3 invlido invlido sucio

W1

w3 sucio

w1 invlido

A escribe un nuevo valor. sta y todas las escrituras posteriores se harn localmente sin usar el bus.

El cache que tiene la ltima copia es el responsable de enviar una seal a la memoria para que no responda ante una solicitud de otro cache . Mientras el dato no se actualice en memoria, la nica copia permanecer en estado sucio, hasta que deba salir de cache por razones de espacio; en ese momento se actualiza la memoria y la palabra desaparece de los caches.

?Protocolo de consistencia write-once (cont.): ?La consistencia se logra haciendo que todos los caches husmeen el bus. ?El protocolo se integra dentro de la unidad de administracin de la memoria (hardware) ?Todo el algoritmo se realiza en un ciclo de memoria

Multiprocesadores Basados en Buses

Multiprocesadores basados en anillo


? Memnet

(1988): tiene un espacio de direcciones que se divide en una parte privada y una compartida ? La parte privada se divide en regiones ? La parte compartida se divide en bloques de 32 bytes. ? Todas las mquinas estn conectadas por un anillo donde circula un token de solicitudes ? Pimera arquitectura de memoria compartida distribuida

Multiprocesadores basados en anillo


Dispositivo Memnet MMUcache Home Block memorytable

Multiprocesadores basados en anillo Protocolo de lectura:


? Examina la tabla de bloques para determinar si el bloque est

CPU MEMORIA PRIVADA

b V E O I Posicin 0 1

...
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 cache y actualizado E: bit exclusivo, copia nica O: bit de origen I: bit de interrupcin

presente. Si est, se satisface la solicitud. Si no est presente: ? Espera el token de solicitudes, coloca la solicitud en el token. El paquete de solicitud contiene la direccin deseada y un campo vaco de 32 bytes. ? A medida que el token circula, cada CPU verifica si contiene el dato solicitado. Si lo tiene, lo coloca en el campo vaco y modifica el encabezado de la solicitud para inhibir la accin de los otros CPUs. Si no lo contiene pasa el token. Si el bit Exclusivo est encendido, se limpia. ? Si la mquina receptora no tiene espacio libre en el cache para almacenar el nuevo dato, selecciona uno al azar (que no sea de los que tienen el bit de Origen encendido) y lo enva a su mquina origen.

Multiprocesadores basados en anillo


Protocolo de escritura, se distinguen tres casos:
? El bloque deseado est presente y el bit Exclusivo est

Multiprocesadores con Conmutador


? Tanto los multiprocesadores basados en bus

encendido (nica copia), entonces la actualizacin se realiza localmente. ? El bloque deseado est presente y el bit Exclusivo no est encendido (existen ms copias), entonces se enva un paquete para que las otras mquinas invaliden este bloque. Cuando el paquete de invalidacin regresa, se enciende el bit Exclusivo y se actualiza el dato. ? Si el bloque no est presente, se enva un paquete que combina una solicitud y una invalidacin. La primera mquina que posea el bloque lo coloca en el paquete e invalida su entrada, el resto de las mquinas slo invalidan su entrada. Cuando el paquete retorna a su emisor se realiza la actualizacin

como los basados en anillo no pueden escalar a ms de 64 procesadores ? Se puede mejorar la capacidad del bus si se incrementa la capacidad de comunicacin (organizando los buses en jerarqua)

Multiprocesadores con Conmutador


A B C A B C A B C M M M
Cluster Bus inter clusters Bus inter superclusters

Multiprocesadores con Conmutador: DASH


Directory Architecture for Shared Memory ? Compuesta de 16 clusters (0 al 15) ? Cada cluster contiene un bus, 4 CPUs, 16 MB de memoria y dispositivos de I/O. ? La cantidad de memoria total es de 256 MB, dividida en 16 regiones de 16MB cada una. ? El cluster 0 contiene las direcciones desde 0 a 16MB, el cluster 1 contiene las direcciones desde 16MB hasta 32MB y as sucesivamente ? La unidad de transferencia es un bloque de 16 bytes

A B C A B C A B C

M M M

A B C A B C A B C

M M M

Bus intra cluster

Multiprocesadores con Conmutador: DASH


? Arquitectura DASH ?Directorios: cada cluster tiene un directorio que contiene la informacin de cules clusters tienen copias de sus bloques.

Comparacin de los Sistemas de Memoria Compartida


Hardware-controlled caching Software-controlled caching Managed by OS Managed by language runtime system

Managed by MMU Singlebus MultiPro. Firefly Cache block Switched MultiPro. Dash Cache block

BLOQUES 0

15

CLUSTERS

Numa

...
1023

ESTADO: UNCACHED: La nica copia est aqu CLEAN: memoria correcta, puede haber ms copias DIRTY: memoria incorrecta, slo un cache tiene el bloque

PageBased DSm Ivy

Shared Variable DSM Munin Data Structure

ObjectBased DSN Linda, Orca Object

Buterfly Page

Page

Remote access in hardware

Remote access in software

Multiprocesadores NUMA
Espacio lineal de memoria compartida Operaciones posibles El acceso remoto es posible en Hw Es posible una memoria no asociada a un CPU particular Quien convierte los accesos remotos a memoria en mensajes Medio de transferencia La migracin la realiza Unidad de transferencia Mtodos de encapsulamiento Si Si Si Si

DSM Pg. Var. Comp.


No No

Obj.

R-W Si Si

R-W Si Si

R-W Si Si

R-W No No

R-W No No

General No No

DSM: Aspectos de Diseo e Implementacin


? Replicacin ? Estructura ? Localizacin de los datos ? Polticas de escritura ? Poltica de reemplazo de pginas ? Modelos de consistencia

MMU

MMU

MMU

OS

Runtime System Red Sw Var. Compartida No

Runtim e System Red Sw Objeto Si

Bus Hw

Bus Hw

Bus Sw Pgina No

Red Sw Pgina No

Bloque Bloqu e No No

Replicacin
? Replicar los bloques de slo lectura ? Replicar todos los bloques: en este caso se
Una palabra

Estructura
? Orientada a bytes
Un bloque (varias palabras) Una pgina Un segmento (mltiples pginas)

tienen que tomar acciones para mantener la consistencia de los datos.


0
0 9 2

1 2 3
5

14 15
13 15 5

? Variables compartidas ? Objetos

Cpu1

Cpu4

Localizacin de los datos


?

Localizacin de los datos


?

Localizacin del propietario : posee o bien la copia de los datos que se puede escribir, o una de las copias de lectura y una lista con los otros nodos que poseen copias de lectura. Es al nico que se le permite actualizar los datos.
Un propietario fijo: cada pieza de datos se asigna a un

Propietario que vara dinamicamente: el problema es localizar al propietario. Se introduce el concepto de manager, que tiene la informacin sobre quin es el propietario actual de los datos. Centralizado : el manager es un

Manager Request Reply P Request Reply Owner

propietario fijo. A los otros procesadores no se les da acceso directo a los datos y deben comunicarse con el propietario cada vez que desean hacer operaciones de escritura.

nico nodo. Los accesos a los datos se negocian con el manager. Es un cuello de botella.

Manager Request

Request

P Reply

Owner

Localizacin de los datos


Distribuido: la informacin sobre los propietarios se distribuye entre los nodos. Cmo se localiza al propietario de un item de datos? ? Fijo: hay un esquema fijo para localizar al manager de los datos. El manager informa cul es el propietario, quien puede variar dinmicamente. ? Dinmico:
Broadcast: se enva un broadcast para encontrar quin es el

Loalizacin de los datos


Localizacin de las copias
Broadcast: trabaja bien si los mensajes nunca

se pierden (broadcast confiable)


Copysets: dice qu procesadores almacenan qu

propietario de los datos. Ineficiente cuando la red subyacente no soporta el broadcast. Dinmico: Cada procesador tiene el propietario probable de cada item. Es una especie de pista. Si la pista es incorrecta, al menos representa el comienzo de una cadena de procesadores a partir de la cual se llega hasta el propietario. Cuando se encuentra cul es el propietario actual, se modifica la pista. Alternativa: un broadcast intermitente.

pginas. Cuando se necesita invalidar una pgina el propietario o el manager enva un mensaje a cada procesador que contenga la pgina y espera por un Ack. La invalidacin culmina cuando se han recibido los acks.

Localizacin de los Datos


Cpu 1 3 4 2 4 Cpu 2 2 3 4 1 3 4 Cpu 3 1 2 3 5 2 4 Cpu 4 3 4 2 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

copyset

10

Polticas de Escritura
? Escritura actualizante:
Las escrituras de un proceso se realizan en forma local

Polticas de Escritura
? Escritura invalidante:
Multiples lectores/un solo escritor. Cuando un proceso intenta escribir un dato, se enva un

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.

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 victima: ? 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:
? ?

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 multiples procesos pueden actualizar los objetos.

Esttico Dinmico: procesador que tenga mas memoria libre.

11

Modelos de Consistencia de la Memoria


?

Modelos de Consistencia de la Memoria


? Los modelos que estudiaremos son:
Consistencia estricta Consistencia secuencial Consistencia causal PRAM Consistencia dbil Consistencia relajada

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.

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)

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: W(x)2 tiempo

x
2 segs

12

Consistencia Estricta
P1: W(x)1 P2: R(x)0 R(x)1
T1: T2: T3: T4: peticin de escritura desde A Un proceso en B lee valor de x llega peticin de escritura de A Un proceso en B lee el valor de X

Consistencia Estricta
?

P1: W(x)1 P2: P3: W(x)2 R(x)2

P1: W(x)1 P2: P3: W(x)2 R(x)1


?

Si hay un cambio en una zona de memoria, todas las lecturas observarn el nuevo valor sin importar cuan pronto se est haciendo la lectura (respecto a la escritura) o donde 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) Read(x) Read(x) P1: W(x)1 P2: R(x)1 R(x)1
Los dos resultados son vlidos desde el punto de vista de consistencia secuencial

? La consistencia estricta es practicamente

imposible de implementar en un sistema distribuido. ? La experiencia demuestra que a un programador le bastan modelos ms dbiles

P1: W(x)1 P2: R(x)0 R(x)1

13

Consistencia Secuencial
a=1 print(b,c) (a) b=1 print(a,c) (b) c=1 print(a,b) (c) Las operaciones son atmicas

Consistencia Secuencial
? Un sistema de consistencia secuencial se

000000 y 001001 son resultados invlidos


Los tres resultados son vlidos y las aplicaciones deben funcionar bien en presencia de cualquiera de ellos

a=1 print (b,c) b=1 print (a,c) c=1 print(a,b) Prints: 001011

a=1 b=1 print (a,c) print (b,c) c=1 print(a,b) Prints: 101011

a=1 c=1 print (a,b) print (a,c) a=1 print(b,c) Prints: 010111

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)

Consistencia Causal
? Si dos procesos escriben espontaneamente y

Si un evento B es causado o influenciado por un evento A, la causalidad requiere que todo el mundo vea primero el evento A y luego el B. ? Cuando encontramos una lectura seguida por una escritura, los dos eventos estn potencialmente relacionados en forma causal. ? Un read est relacionado causalmente con la escritura que provee el dato que se ha ledo.
P1 escribe X P2 lee X escribe Y (Y puede depender del valor ledo de X)

simultaneamente una variable, estos accesos no estn relacionados causalmente. ? Las operaciones que no estn relacionadas causalmente se dice que son concurrentes

14

Consistencia Causal
Las escrituras relacionadas causalmente deben ser vistas por todos los procesos en el mismo orden. Las escrituras concurrentes pueden ser vistas en un orden diferente, en diferentes mquinas.
P1: W(x)1 P2: P3: P4: concurrentes W(x)3 R(x)1 W(x)2 R(x)1 R(x)1 R(x)3 R(x)2 R(x)2 R(x)3 P1: W(x)1 P2: P3: P4:

Consistencia Causal
R(x)1 W(x)2 R(x)2 R(x)1 R(x)1 R(x)2

Violacin de la Consistencia Causal

Hay consistencia causal pero no consistencia secuencial o consistencia estricta

P1: W(x)1 P2: P3: P4: W(x)2 R(x)2 R(x)1 R(x)1 R(x)2

Una sucesin de eventos correcta con Consistencia Causal

Consistencia Causal
? Implementacin: grafo de dependencia para

Consistencia PRAM (Pipelined RAM)


(Lipton and Sandberg 1988)

determinar cules operaciones son dependientes de otras y cules son concurrentes. Un ente centralizado.

Las escrituras realizadas por un proceso, son recibidas por el resto en el orden en el cual stas fueron ejecutadas, no obstante, las escrituras realizadas por diferentes procesos pueden ser vistas en rdenes diferentes por todos ellos
P1: W(x)1 P2: P3: P4: R(x)1 W(x)2 R(x)2 R(x)1 R(x)1 R(x)2

Una sucesin correcta de eventos con Consistencia PRAM

15

Consistencia PRAM (Pipelined RAM)


(Lipton and Sandberg 1988) P1: W(x)1 W(x) 3 P2: P3: P4: 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) b=1 print (a,c) c=1 print (a,b) a=1 print(b,c)

(a)
a=1 if (b == 0) kill (p2)

(b)

(c)
b=1 if (a == 0) kill (p1)

(a)

(b)

Consistencia PRAM
a=1 if (b == 0) kill (p2) b=1 if (a == 0) kill (p1)

Consistencia Dbil
(Dubois et al. 1986)

(a)

(b)

P1 muere, P2 muere, o no muere ninguno. En el modelo PRAM pueden morir los dos procesos
a=1 if (b == 0) kill (p2) b=1 if .... b=1 if (a == 0) kill (p1) a=1 If ...

Los modelos anteriores se consideran a n restrictivos porque requieren que las escrituras de un proceso se vean en orden. ? Esto no siempre es necesario. Ej. Cuando se est en una regin crtica no es necesario propagar valores intermedios sino los valores finales.
?

Para saber que se est en una regin crtica a menos que se establezcan instrucciones explcitas.

16

Consistencia Dbil
(Dubois et al. 1986)

Consistencia Dbil
(Dubois et al. 1986)

Se introduce un nuevo tipo de variable: variables de sincronizacin. ? Los accesos a las variables de sincronizacin son secuencialmente consistentes: todos los procesos ven todos los accesos a las variables de sincronizacin en el mismo orden. ? No se permite el acceso a ninguna variable de sincronizacin hasta que todas las escrituras previas se hayan completado: Hacer una sincronizacion despus de operaciones de escritura obliga a que los nuevos valores se propaguen a todas las memorias.

El hacer una operacin de sincronizacin antes de leer los datos, le garantiza a un proceso que leer los ltimos valores.

Operacin de sincronizacin: garantiza que las escrituras locales sean propagadas a todas las otras mquinas y se actualiza la memoria actual con escrituras hechas remotamente.

Consistencia Dbil
Variables ordinarias
P1: W(x)1 W(x)2 S P2: P3: R(x)1 R(x)2 S R(x)2 R(x)1 S

Consistencia Relajada
(Gharachorloo et al., 1990)

Se proveen dos operaciones:


Acquire: la memoria se asegura que todas las copias

P1: W(x)1 W(x)2 S P2: S R(x)1

locales de las variables protegidas se actualizan con las variables remotas. Release: con esta operacin se propagan los cambios realizados a las variables protegidas al resto de las mquinas.
?

El programador es el responsable de colocar estas operaciones correctamente en su programa

17

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

Realizar un acquire no garantiza que los cambios realizados sean propagados al resto de las mquinas en forma inmediata. De forma similar, el realizar un release no garantiza que se importen cambios realizados por otras mquinas.
P1: Acq(L) W(x)1 W(x)2 Rel(L) P2: P3: Acq(L) R(x)2 Rel(L) R(x)1

Modelos de Consistencia
Consistencia: Modelos que no usan operaciones de sincronizacin Descripcin

Modelos de Consistencia
Consistencia: Modelos con Descripcin operaciones de sincronizacin

Estricta Secuencial Causal PRAM

Todos los accesos compartidos se observan en el orden en el que se realizaron. Imposible de implementar en DSM Todos los procesos ven todos los accesos en el mismo orden. Popular entre los programadores y ampliamente usado. Desempeo pobre. Todos los procesos ven los accesos compartidos, relacionados causalmente, en el mismo orden Todos los procesos ven las escrituras de un mismo proceso en el orden en el que se realizaron. Las escrituras de distintos procesos no siempre se ven en el mismo orden. Los programadores (con estos dos ltimos modelos) deben evitar instrucciones que slo trabajan con consistencia secuencial

Dbil

Se garantiza que los datos compartidos estn consistentes despus de la operacin de sincronizacin Los datos compartidos estn consistentes cuando se sale de la regin crtica. Estos modelos pueden ser ms eficientes pero requieren ms esfuerzo del programador

Relajada

18

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.

19