160 likes | 325 Views
TreadMarks TM. Martín García Hernández. 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
E N D
TreadMarksTM Martín García Hernández Martino García Hernández
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).
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
TreadMarksTM • Sistema de Memoria Virtual Distribuida (SMVD) • Proyecto de la Universidad de Rice, USA • Permite declarar variables compartidas
TreadMarksTM SMVD • Proporciona un espacio de direcciones para todas las maquinas en un cluster • Memoria global compartida pero ejecución en la memoria privada
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
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
TreadMarksTM SMVD Fig. 1 Memoria Compartida Virtual: Cada procesador ve un espacio de dirección compartido, denotado por el contorno punteado. Memoria Compartida
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);
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));
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);
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.
Aplicaciones • Mixed Integer Programming (minimización o maximización de funciones lineales) • Analisis Genetico • Optimizacion • Aplicaciones Paralelas en general
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.
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
TreadMarksTM 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/ tilicogarcia@hotmail.com 5804 4930, 5804 4930 y 5804 4930 Ext. 228