Alumno: César Sabater
Director: Cédric Bastoul
Co-Director: Guillermo Grinblat
Aula: 23
Resumen:
Las técnicas de optimización y paralelización automática son muy adecuadas para algunas clases de aplicaciones en simulación o procesamiento de señales, sin embargo normalmente no tienen en cuenta conocimiento de dominio específico ni la posibilidad de cambiar o eliminar cálculos modificando la semántica original pero manteniendo resultados "suficientemente buenos". Por otro lado, los códigos de producción en simulación y procesamiento de señales tienen capacidades adaptivas: están diseñados para computar resultados precisos solamente donde es necesario si el problema completo no es tratable o si el tiempo de cálculo debe ser corto.
En este trabajo, presentamos una nueva manera de suministrar capacidades adaptivas de forma automática para códigos de cómputo intensivo. Se basa en conocimiento de dominio específico en el código de entrada suministrado por el programador a través de pragmas especiales y en técnicas de compilación poliédrica para regenerar en tiempo de ejecución un código que realiza cálculos complejos solamente donde es necesario en cada momento. Presentamos un caso de estudio en una aplicación de simulación de fluidos donde nuestra estrategia permite importantes ahorros en cálculos en la porción optimizada de la aplicación así como también mejoras significativas en el tiempo total de ejecución, manteniendo buena precisión, con un mínimo trabajo del programador.