rogramación Gráfica de Altas restaciones lataformas de altas prestaciones para Infomática Gráfica. Máster de Desarrollo de Software Depto. de Lenguajes y Sistemas Informáticos lsi.ugr.es/~jmantas/ga
1. lataformas y Modelos de rogramación Aplicaciones Gráficas (y de cómputo general) Crecientes demandas de realismo Generación de imágenes en tiempo real Modelos cada vez más complejos Elevado costo computacional Solución: Uso de Arquitecturas de altas prestaciones Multiprocesadores Simétricos: SMs. Clusters de SMs rocesadores Gráficos (GUs) Considerable reducción en tiempo de ejecución Muchas de estas arquitecturas son de uso convencional! Cómo sacar provecho de estas arquitecturas? Diseño para aprovechar paralelismo Modelos de programación, notaciones y herramientas adecuadas. Desarrollar software de forma diferente 2
1.1. Arquitecturas. Clasificación Concepto clave para mejorar las prestaciones: aralelismo Hardware Hardware aralelo Clasificación de Flynn Único flujo de instrucciones Múltiples flujos de instrucciones.. SISD Único flujo de datos Monoprocesadores MISD No se usa MIMD SIMD Múltiples flujos de datos... procesadores con ex- tensiones SIMD: SSE,... Multiprocesador de una GU - roc. Multicore - Multiprocs. NUMA - Clusters de ordenadores 3
1.2. rocesadores Gráficos (GUs) DEVICE HOST CU GU CI-E Multiprocesador Multiprocesador Registros Multiprocesador Memoria compartida Multiprocesador Memoria compartida Registros Memoria compartida DRAM DRAM 4
1.2. rocesadores Gráficos (GUs) Grandes prestaciones en computaciones paralelas de datos restaciones muy superiores a CU en cálculos intensivos. Su uso se ha extendido más allá del mundo de los gráficos 3D. 5
rocesadores Gráficos (GUs) La GU contiene N multiprocesadores. Cada multiprocesador incluye: - M procesadores - Banco de registros - Memoria compartida: muy rápida, pequeña. - Cachés de ctes y de texturas (sólo lectura) La memoria global es 500 veces más lenta que la memoria compartida 6
rocesadores Gráficos (GUs) Fermi (GT400) 512 cores 16 multiprocs. Cada multiprocs. con 32 cores y 16 Unidades de doble precisión. 64 KB. de SRAM a repartir entre memoria compartida y Cache L1. 7
1.3. Multiprocesadores Espacio de direcciones único: espacio de direcciones compartido. rocesadores. interactúan modificando datos en Fácil programar con datos compartidos: Clasificación dependiendo de la localización de la memoria ppal: Multiproc. UMA (Uniform Memory Access) o SM (Symmetric Multirocessors) NUMA (NonUniform Memory Access) Difícil aumentar el no de procesadores: máx. 16. Ejemplos: Dual Cs, Quad Cs, multicore,.... Red de interconexión. Red de interconexión Módulos de memoria M.. M M M Memoria compartida Memoria Compartida 8
1.3.1. rocesadores multinúcleo (multicore) Arquitectura multicore: cada procesador contiene dos o más núcleos que pueden ejecutar instrucciones de forma simultánea. Multiprocesador en un solo chip: el sistema operativo percibe cada núcleo como procesador independiente. Teóricamente, paralelismo perfecto. rocesadores visibles al Sist. Operativo Ventajas: Menor consumo y mejor disipación calor. Thread 1 Mejor aprovechamiento multithreading. Thread 2 Thread 3 Ejemplos: Intel Core i7 (4/6), IBM Cell (8+1),... resente: Ordenadores basados en esta tecnología y adaptación software al nuevo hardware. Thread 4 roductividad + + 9
1.3. Multiprocesadores. rogramación rocesos/hebras comparten un espacio de memoria común donde leen y escriben asíncronamente. Sincronización y Comunicac. mediante variables. compartidas Mecanismos Sincronización: Secciones críticas, Sincronización de barrera,... Simplifica el desarrollo de programas MEMORIA rocesador Hebra maestra F O R K J O I N Región paralela rocesador rocesador Notación estándar: OpenM: - Conjunto de directivas de compilador y funciones para programación paralela multihebrada en multiprocesadores No es necesario especificar explícitamente la comunicación de datos Eficiente sólo en arquitecturas de memoria compartida. rocesador Hebra maestra F O R K J O I N Hebra maestra Región paralela 10
1.4. Clusters de Ordenadores Conexión de ordenadores mediante red de interconexión. Cada ordenador con su memoria local y su propio espacio de direcciones Red de interconexión: Red de Interconexión envío/recepción de mensajes. unto de vista del programador: Difícil programar con paso de mensajes. No se necesitan mecanismos de Exclusión mútua Aplicable a redes de ordenadores Mayor flexibilidad y adaptación a los avances tecnológicos 11
1.4. Clusters de Ordenadores. rogramación Modelo de programación basado en paso de Mensajes Gran difusión Válido para un amplio rango de arquitecturas (MIMD). Computación paralela = número fijo o variable de procesos concurrentes. roceso = rograma secuencial aumentado con paso de mensajes + memoria local Operaciones de paso de mensajes: Envío/Rec. a procesos nombrados SEND (valor, 0) RECEIVE (buffer, 1) Envíar mensaje Recibir mensaje asíncrono síncrono 12
1.4. Clusters de Ordenadores. rogramación Estilo de programación SMD (Single rogram Multiple Data) Cada proceso ejecuta mismo programa sobre diferentes datos ROC rank (rograma SMD para 2 procesos) {while (true){ If (rank=0) {roduce (&dato); send (&dato,1,1);} Else {receive(&buffer,1,0); Consume (&buffer);} } Notación estándar: MI (Message assing Interface) Funciones para paso de mensajes y operaciones complementarias. aso de mensajes portable y relativamente fácil de usar. Modelo de rogramación Computación Número fijado de procesos se comunican mediante llamadas a funciones de envío y recepción de mensajes. Modelo básico: SMD 13
1.4. Composición de lataformas 14