Uso de aceleradores de hardware en sistemas de bases de datos relacionales
Supervisor(es): Etcheverry, Lorena - Ezzatti, Pablo
Resumen:
En los últimos años el uso de coprocesadores gráficos, o GPUs por su sigla en inglés, para acelerar la resolución de problemas de propósito general ha ido en aumento. Estos dispositivos han fomentado la evolución del uso de arquitecturas de cómputo homogéneas y con un solo procesador a plataformas de hardware heterogéneas y masivamente paralelas. Los motores de bases de datos no son ajenos a esta tendencia. Notar que los sistemas manejadores de bases de datos (DBMS) requieren de grandes volúmenes de cómputo. Los manejadores que aprovechan las GPUs, conocidos como GDBMS, en general sacan partido de las bondades de estos dispositivos en contextos de consultas que implican grandes volúmenes de datos. En este trabajo se relevan GDBMS existentes, analizando oportunidades de mejora, priorizando aquellos GDBMS que sean capaces de incorporar técnicas de aprendizaje automático para determinar qué dispositivo utilizar en cada contexto. En particular, en este proyecto se propone trabajar sobre un manejador existente (CoGaDB), y más específicamente en una versión que fue extendida en un proyecto de grado anterior, con el fin de mejorar el aprovechamiento de los recursos ociosos (y, por tanto, reducir los tiempos de ejecución de consultas con altos requerimientos de cómputo). El principal foco del trabajo es el desarrollo de una heurística para automatizar la distribución del trabajo (y datos) entre los diferentes dispositivos de cómputo disponibles en la plataforma de ejecución para consultas del tipo Join. La herramienta desarrollada se basa en el uso de técnicas de aprendizaje automático. La evaluación experimental muestra que, para consultas que involucran columnas con gran cantidad de valores, la utilización del Join híbrido concurrente y el uso de la heurística formulada es fundamental para la obtención de mejores tiempos de ejecución, así como para alcanzar un mejor aprovechamiento de los recursos disponibles.
2019 | |
SISTEMAS DE BASES DE DATOS | |
Español | |
Universidad de la República | |
COLIBRI | |
https://hdl.handle.net/20.500.12008/23014 | |
Acceso abierto | |
Licencia Creative Commons Atribución - No Comercial - Sin Derivadas (CC - By-NC-ND 4.0) |
Sumario: | En los últimos años el uso de coprocesadores gráficos, o GPUs por su sigla en inglés, para acelerar la resolución de problemas de propósito general ha ido en aumento. Estos dispositivos han fomentado la evolución del uso de arquitecturas de cómputo homogéneas y con un solo procesador a plataformas de hardware heterogéneas y masivamente paralelas. Los motores de bases de datos no son ajenos a esta tendencia. Notar que los sistemas manejadores de bases de datos (DBMS) requieren de grandes volúmenes de cómputo. Los manejadores que aprovechan las GPUs, conocidos como GDBMS, en general sacan partido de las bondades de estos dispositivos en contextos de consultas que implican grandes volúmenes de datos. En este trabajo se relevan GDBMS existentes, analizando oportunidades de mejora, priorizando aquellos GDBMS que sean capaces de incorporar técnicas de aprendizaje automático para determinar qué dispositivo utilizar en cada contexto. En particular, en este proyecto se propone trabajar sobre un manejador existente (CoGaDB), y más específicamente en una versión que fue extendida en un proyecto de grado anterior, con el fin de mejorar el aprovechamiento de los recursos ociosos (y, por tanto, reducir los tiempos de ejecución de consultas con altos requerimientos de cómputo). El principal foco del trabajo es el desarrollo de una heurística para automatizar la distribución del trabajo (y datos) entre los diferentes dispositivos de cómputo disponibles en la plataforma de ejecución para consultas del tipo Join. La herramienta desarrollada se basa en el uso de técnicas de aprendizaje automático. La evaluación experimental muestra que, para consultas que involucran columnas con gran cantidad de valores, la utilización del Join híbrido concurrente y el uso de la heurística formulada es fundamental para la obtención de mejores tiempos de ejecución, así como para alcanzar un mejor aprovechamiento de los recursos disponibles. |
---|