Líneas de investigación
Mecanismos de paralelización especulativa
El objetivo es desarrollar mecanismos de paralelización automática que permitan explotar el paralelismo inherente a muchos bucles. Aunque algunos bucles pueden paralelizarse en tiempo de compilación, otros muchos no son directamente analizables hasta que se produce su ejecución. Los mecanismos de paralelización especulativa suponen que el bucle en cuestión es paralelizable y lo ejecutan en paralelo, comprobando al mismo tiempo que no se produzcan violaciones de dependencia entre datos compartidos por dos iteraciones diferentes. En el caso de que se produzcan, el trabajo realizado por las iteraciones afectadas deberá descartarse, reiniciándose la ejecución de ambas iteraciones en orden.
El resultado de nuestro trabajo es ATLaS, un sistema que extiende las funcionalidades de OpenMP para ofrecer mecanismos de paralelización especulativa. Para más información, consulte la página principal de este proyecto (en inglés).
ATLaS puede descargarse desde la página web del proyecto.
ITS: Intelligente Transport Systems
Esta línea de investigación consiste en el desarrollo de sistemas Linux para su instalación en equipos móviles y flotas de vehículos, e incluye:
- El desarrollo de módulos para el kernel Linux con el fin de controlar sistemas externos.
- El desarrollo de sistemas empotrados desde cero para su uso en sistemas con fuertes restricciones de memoria o disco duro (menos de 16 Mb).
- Cursos de formación en sistemas empotrados bajo Linux.
- Labores de consultoría en temas relacionados con el kernel Linux, el software libre y sus aplicaciones en sistemas comerciales e industriales.
Esta línea está siendo desarrollada en colaboración con GMV Sistemas.
Más información en la página web del Grupo ITS.
TPCC-UVa: una implementación de dominio público del benchmark TPC-C
TPC-C es un benchmark muy extendido entre los fabricantes de ordenadores para comparar el rendimiento de diferentes equipos. TPC-C simula la ejecución de un conjunto de transacciones sobre una base de datos durante un período de entre dos y ocho horas. Aunque las especificaciones de TPC-C son públicas, su implementación es propiedad de cada fabricante.
A través de un Proyecto de Fin de Carrera se ha construido una implementación del benchmark TPC-C. Este proyecto, denominado "Implementación en C del benchmark de transacciones distribuidas TPC-C", desarrollado por Eduardo Hernández Perdiguero y Julio Alberto Hernández Gonzalo bajo la dirección de Diego R. Llanos Ferraris, ha dado lugar a TPCC-UVa, de libre distribución.
TPC-C es un benchmark ampliamente utilizado en la industria para medir el rendimiento de sistemas de procesamiento de transacciones en línea (OLTP). TPC-C incorpora una mezcla de cinco tipos de transacciones concurrentes de diferente complejidad, para su ejecución en línea o diferida contra una base de datos en memoria. La ejecución del benchmark produce un parámetro de rendimiento, las transacciones por minuto (tpmC). Este parámetro permite comparar la velocidad de diferentes servidores en la gestión de transacciones.
Características y limitaciones
- Esta implementación se basa en la utilización de Postgresql como motor de
la base de datos. Postgresql cumple las características de aislamiento y
consistencia indicadas en el estándar TPC-C.
- El monitor de transacciones
utilizado es un monitor hecho a medida. El estándar TPC-C
especifica que monitor de transacciones debe estar disponible
comercialmente, lo que impediría la libre distribución
del software.
- La principal consecuencia de utilizar un monitor de transacciones propio es que los resultados obtenidos con TPCC-UVa, y en particular la medida de rendimiento (expresada en transacciones por minuto, tpmC) no son comparables con otros valores de tpmC obtenidos por otras implementaciones distintas de TPCC-UVa.
Para más detalles, consultar la página principal del Proyecto TPCC-UVa (en inglés).