TreadMarks
TM
Martín García Hernández
Diciembre 05, 2006
Martino García Hernández
1CSC 8530
Sistemas de Memoria Compartida
 Una red de computadoras no tiene memoria
compartida
 Para permitir la construcción de aplicaciones
distribuidas
utilizando
este
modelo
de
comunicación, es necesario simularla
 Esta simulación es realizada por una capa de
software denominada Sistema de Memoria Virtual
Distribuida (SMVD).
2
SMVD
 Memoria compartida disponible (grande)
 Cada proceso dispone de un espacio virtual
compartido
 Dentro de ese espacio se definen las variables
que se van a utilizar
 Cuando un proceso requiere utilizar una variable
compartida, el SMVD investiga en donde se
encuentra y la trae a la memoria del proceso para
que éste pueda utilizarla
3
TreadMarksTM
 Sistema de Memoria Virtual Distribuida
(SMVD)
 Proyecto de la Universidad de Rice, USA
 Permite declarar variables compartidas
4
TreadMarksTM SMVD
 Proporciona un espacio de direcciones
para todas las maquinas en un cluster
 Memoria global compartida pero ejecución
en la memoria privada
5
Modelo de Memoria TreadMarksTM
 El modelo de memoria TreadMarks define las
actualizaciones a la memoria compartida que son
reflejadas a los procesos del sistema
 TreadMarks utiliza el modelo: “release
consistency”
 Este modelo se basa en el supuesto de que los
accesos a variables compartidas se protegen en
secciones criticas empleando primitivas de
sincronización, como locks
6
TreadMarksTM release consistency
 La sincronización es utilizada para prevenir
condiciones de competencia entre los procesos
paralelos
 Si variable var es repicada a todos los
procesadores
 Únicamente el procesador que consigue “cerrar”
(lock) tiene acceso a var y solamente ese
procesador sabe del cambio de var
7
TreadMarksTM SMVD
Memoria Compartida
Fig. 1 Memoria Compartida Virtual: Cada procesador ve un espacio de dirección compartido,
denotado por el contorno punteado.
8
TreadMarksTM (primitivas)
 Tmk startup: Iniciar el sistema de memoria compartida
Tmk_startup(argc, argv);
 Tmk exit: Terminar el sistema de memoria compartida
Tmk_exit(0);
9
TreadMarksTM (primitivas)
 Tmk malloc y Tmk free : Pedir y liberar memoria
compartida
Tmk_malloc(sizeof(shared));
Tmk_free(shared);
 Tmk distribute: Para copiar un valor en las memorias
privadas de los otros procesadores
Tmk_distribute(&shared, sizeof(shared));
10
TreadMarksTM (primitivas)
 Tmk barrier: Esperar en una barrera a los otros procesos
Tmk_barrier(0);
 Tmk lock acquire y Tmk lock release: Pedir y liberar
candados
Tmk_lock_acquire(0);
Operaciones();
Tmk_lock_release(0);
11
Eficiencia de SMVD
 SMVD está construido sobre un servicio
de intercambio de mensajes y para simular
la memoria compartida, los componentes
del SMVD intercambian mensajes. Por lo
tanto, la cantidad de mensajes y de
información transferida en un sistema de
este tipo es superior a la transferida en el
caso del modelo a intercambio de
mensajes.
12
Aplicaciones
 Mixed Integer Programming (minimización
maximización de funciones lineales)
 Analisis Genetico
 Optimizacion
 Aplicaciones Paralelas en general
o
13
Conclusiones
 TreadMarks
es
desarrollado
para
OS
comercialmente disponibles.
 Una implementación nivel de usuario de un
sistema de Memoria distribuida es capaz de
hacer el paso a computación paralela con el
menor costo posible.
 El costo de comunicación se minimiza durante la
inactividad.
 TreadMarksTM demuestra que una distribución
de memoria compartida se puede alcanzar
eficasmente.
14
Referencias
 Revista Contactos Número 38, octubre-diciembre 2000,
Memoria compartida o mensajes? Elizabeth Pérez Cortés
y Graciela Román Orozco. UAM-Iztapalapa. Depto de
Ingeniería Eléctrica, área de Computacón y Sistemas.
 http://www.izt.uam.mx/contactos/
 http://www.cs.rice.edu/~willy/TreadMarks/overview.htm
 http://citeseer.ist.psu.edu/amza96treadmarks.html
 http://en.wikipedia.org/wiki/Distributed_shared_memory
15
TreadMarks
TM
Sistemas Distribuidos
Maestría en Ciencias y Tecnologías de la Información
Universidad Autónoma Metropolitana
Iztapalapa, México
http://mcyti.izt.uam.mx/
[email protected]
5804 4930, 5804 4930 y 5804 4930 Ext. 228
16