620 likes | 948 Views
Un Ambiente para la Evaluación de Arquitecturas de Memoria en Esquemas Multihilo Simultáneo. Augusto J. Vega ajvega@fi.uba.ar Tesis de Grado en Ingeniería en Informática Orientación en Sistemas Distribuidos Febrero de 2007. Introducción.
E N D
Un Ambiente para la Evaluación de Arquitecturas de Memoria en Esquemas Multihilo Simultáneo Augusto J. Vega ajvega@fi.uba.ar Tesis de Grado en Ingeniería en Informática Orientación en Sistemas Distribuidos Febrero de 2007
Introducción • Interrogantes respecto al desempeño de los recursos compartidos (memoria caché L1) en los nuevos procesadores con soporte multihilo (HyperThreading, Power5, etc.). • Presentación de una nueva organización caché adecuada para estos procesadores. • Desarrollo de herramientas para el estudio de memorias caché en ambientes multihilo. • Creación de nuevas métricas y adaptación de otras existentes.
Estructura de laPresentación • Recolección de trazas. • Procesamiento de trazas y simulación. • Caché para procesadores multihilo. • Conclusiones y trabajo a futuro.
Recolección de Trazas • Traza: secuencia de referencias a memoria generadas por un programa. • Útil para la simulación de memorias caché. • Típicamente, provenientes de programas secuenciales (un solo hilo de ejecución). • Necesidad de trazas multihilo. 0x804879C 0x804879D 0x804879F 0x80487A2 0x80487A5 0x80487A7 0x80487AA 0x80487AD 0x80487B0 0x80487B1 ...
El Sistema Valgrind • Herramienta para depuración y análisis de desempeño, para ejecutables Linux-x86. • Implementación de un procesador sintético x86. • Instrumentación dinámica de código binario. • Herramienta pública (GPL) y de código abierto. • Sitio web: http://www.valgrind.org/
El Sistema Valgrind(cont.) Valgrind puede clasificarse como un emulador del conjunto de instrucciones. Valgrind
Valgrind + Multihilo • Soporte para hilos POSIX (pthreads). • Coregrind es responsable de la planificación mediante política round-robin. • Modificaciones al planificador, para lograr una ejecución pseudo-simultánea de los hilos.
El Módulo Tracegrind • Módulo para recolección de trazas multihilo, aprovechando el soporte de Valgrind. • Instrumenta cada operación de lectura/escritura. • Comprime la traza “al vuelo”, usando LZ77.
Validación de Trazas • No se puede “confiar” en los resultados posteriores si las trazas no son válidas. • No existen metodologías rigurosas. • Consejos obtenidos del Prof. Alan Jay Smith[1]: • Tomar muestras de la traza y compararlas “manualmente” contra el código objeto. • Realizar un análisis básico de tasas de lecturas y escrituras, cant. de instrucciones, distancia de saltos, etc. y compararlos contra resultados publicados. [1] Computer Science Division, EECS Department, University of California, Berkeley.
Validación de Trazas deInstrucciones y Datos • Uso de programas multihilo “modelo”. • Ejecución de los mismos sobre Valgrind, y recolección de sus trazas. • Desensamblado de los programas “modelo”, y comparación “a mano” contra la traza de instrucciones. • Salida por pantalla de las direcciones de memoria de estructuras de datos y variables, y comparación “a mano” contra la traza de datos.
Trazas Recolectadas • Subconjunto de los benchmarks SPLASH-2 (Stanford Parallel Applications for Shared Memory). • Aplicaciones para procesamiento paralelo de algoritmos típicos (FFT, LU, Cholesky, etc.). • Construido en base a macros PARMACS. • Se utilizaron PARMACS para hilos POSIX.
Estructura de laPresentación • Recolección de trazas. • Procesamiento de trazas y simulación. • Caché para procesadores multihilo. • Conclusiones y trabajo a futuro.
Procesamiento de Trazasy Simulación • Posibles procesamientos sobre una traza: • Conversión de formato. • Compresión. • Filtrado y muestreo. • Simulación. • Construcción de un framework flexible para el procesamiento de trazas SimiOO • Extensible mediante la construcción de plug-ins. • Programado en lenguaje Java.
Simulación deMemorias Caché • Metodologías: • Modelado analítico. • Simulación. • Técnicas de simulación: • Manejada por ejecución: la simulación se realiza mientras se ejecuta el programa. • Manejada por trazas: la simulación se realiza utilizando el “historial” de accesos a memoria. • Uso de estructuras (arreglos lineales y matrices) para modelar las organizaciones de memoria.
Procesamientode una Traza • Lectura secuencial de todas las referencias. • Procesamiento sobre cada referencia leída (por ejemplo, alimentarla a un simulador). Por ejemplo, simulador de memorias caché
Interfaz Gráfica de Usuario Marco genérico aportado por el núcleo de SimiOO Perspectiva aportada por el plug-in
Estructura de laPresentación • Recolección de trazas. • Procesamiento de trazas y simulación. • Caché para procesadores multihilo. • Conclusiones y trabajo a futuro.
Paralelismo a Nivelde Instrucciones • Un procesador superescalar puede procesar dos o más instrucciones simultáneamente. • Replica algunas unidades funcionales (ALU). • Explota el paralelismo a nivel de instrucciones. • Podría implementar un mecanismo de pipeline.
Paralelismo a Nivelde Instrucciones (cont.) • En la práctica, este paralelismo suele ser pobre, debido a “riesgos” (hazards): • Estructurales: recursos insuficientes. • De Datos: dependencias de datos entre dos instrucciones. • De Control: debido a transferencias del flujo de control (branches). • Además, el flujo de ejecución podría bloquearse ante una operación de E/S o un desacierto en la memoria caché.
Paralelismo a Nivelde Instrucciones (cont.) • Se generan “desperdicios”: • Horizontales. • Verticales. • Se explota el paralelismo a nivel de hilo: • CMT (Coarse-Grain Multithreading). • FMT (Fine-Grain Multithreading). • SMT (Simultaneous Multithreading).
Multihilo Simultáneo - SMT • Permite la ejecución simultánea de dos o más “hilos” de instrucciones, aprovechando el TLP. • También explota el ILP presente en cada hilo. • Competencia por los recursos (e.g., la memoria caché). • Implementaciones comerciales: • Intel Hyper-Threading. • IBM Power5. • MIPS MT.
Multihilo Simultáneo - SMT(cont.) ¿Cómo se comporta la memoria caché en un procesador multihilo simultáneo?
Memorias Caché • Caché: lugar oculto para guardar provisiones. • En computación, memoria pequeña y de rápido acceso para mantener los datos que, se supone, serán usados en un futuro inmediato. • Explota el principio de localidad. • Reduce los accesos a memorias más lentas.
Memorias Caché(cont.) • En caso de desacierto, se trae el bloque desde el nivel inferior. • Estrategias para ubicar el nuevo bloque: • Correspondencia directa. • Asociativa por conjuntos. • Completamente asociativa. • Políticas de reemplazo: • LRU (Least Recently Used). • FIFO. • Aleatoria.
Memoria Cachéde Correspondencia Directa El nuevo bloque puede ubicarse en un solo lugar de la caché.
Memoria CachéAsociativa por Conjuntos El nuevo bloque puede ubicarse en un conjunto de lugares posibles de la caché. Conjunto
Memoria CachéCompletamente Asociativa El nuevo bloque puede ubicarse en cualquier lugar de la caché.
El Esquema SWSA • Esquema asociativo tradicional. • Los bancos (vías) pueden ser de tamaños diferentes. • Los bloques pueden compartirse entre diferentes conjuntos.
El Esquema SWSA-MT • Se basa en el diseño SWSA. • Cada hilo dispone de un banco privado. • Todos los hilos acceden a un banco compartido.
Nuevos Criteriosy Métricas • Tasa de aciertos compartidos: tasa de aciertos debido a accesos a bloques previamente referenciados por otros hilos. • Acierto “largo”: acierto debido a que el bloque buscado por el hilo x se encuentra en la memoria privada del hilo y, siendo x y. • Tasa de reubicación: tasa de reubicaciones debido a aciertos “largos”.
Clasificación de Desaciertos • Objetivo: Conocer la causa de los desaciertos en una memoria caché para descubrir “debilidades”. • Los modelos clásicos de clasificación no contemplan ambientes de ejecución multihilo. • Uno de los más utilizados: modelo de las 3C [1] • Desaciertos obligatorios (compulsory). • Desaciertos de capacidad (capacity). • Desaciertos de conflicto (conflict). [1] Mark Hill, Aspects of Cache Memory and Instruction Buffer Performance, Ph.D. Thesis, University of California, Berkeley.
Clasificación de Desaciertos:El Modelo de las 4C • Propuesto en esta tesis, como extensión del modelo de las 3C. • Útil para ambientes multihilo. • Tipos de desaciertos: • Obligatorios (compulsory). • De capacidad (capacity). • De conflicto cerrado (closed-conflict). • De conflicto cruzado (crossed-conflict).