Esta tesis propone una forma novedosa para introducir características autonómicas de auto-configuración y auto-optimización a Patrones de Paralelismo (o Algorithmic Skeletons en inglés) usando técnicas de la Programación Dirigida por Eventos (o EDP por sus siglas en inglés).
Gracias al uso de la programación dirigida por eventos, la solución propuesta en esta tesis presenta las siguientes contribuciones a las soluciones actuales:
- No está relacionada a una arquitectura de aplicaciones en particular, por ejemplo la arquitectura de componentes. De esta forma, presenta una solución con un mayor alcance y es
independiente de la arquitectura usada para la implementación de los patrones de paralelismo.
- Provee un mayor nivel de adaptabilidad por permitir la introducción de cambios estructurales
en tiempo de ejecución. A diferencia de otras soluciones que solo permiten la introducción de
este tipo de cambios durante la compilación.
- Los estimados de trabajo futuro pueden ser calculados en tiempo de ejecución y no hay
dependencia a estimados pre-calculados en ejecuciones anteriores.
Las características autonómicas presentadas en esta tesis se enfocan principalmente en garantizar un tiempo de ejecución a un patron de paralelismo por medio de la optimización de la cantidad de hilos de ejecución usados. Las calidades de servicio (QoS por sus siglas en inglés) usadas para este fin son: (1) tiempo de ejecución percibido por el usuario y (2) nivel de paralelismo.
Otras contribuciones de esta tesis son:
- Diseño e implementación de una novedosa solución a la separación de asuntos en los patrones
de paralelismo usando técnicas de la programación dirigida por eventos. Esta solución
novedosa permite la introducción de asuntos no-funcionales a los patrones de paralelismo sin
disminuir sus abstracciones de alto nivel.
- Evaluación de diferentes estrategias de estimación de trabajo futuro con el fin de realizar
recomendaciones relacionadas a responder a la pregunta ¿Qué estrategia produce mejores
estimados bajo qué circunstancias?