En esta tesis se analiza el problema de planificar un conjunto de tareas sobre
una GPU desde diferentes puntos de vista. Por una parte, se estudia el solapamiento
de comandos de transferencia de datos con comandos de ejecución de
kernels con el objetivo de minimizar el tiempo de ejecución (makespan). Por otra
parte se comparan distintos métodos que permiten la ejecución solapada de varios
kernels sobre la misma GPU buscando alcanzar diferentes objetivos como
maximizar el rendimiento del sistema (system throughput), alcanzar la equidad
(fairness) o garantizar una calidad de servicio (QoS).
En el estudio sobre el solapamiento de comandos se busca identificar el orden
de ejecución que resulte en un tiempo de procesamiento mínimo. Se aplican los
conceptos de la teoría de planificación a este problema y se modela la ejecución
concurrente de tareas en una GPU como un problema de tipo Flow Shop. Además,
se desarrolla una nueva estrategia llamada NEH-GPU que combina una heurística
previamente existente con un modelo de ejecución de tareas en GPU y se efectúan
experimentos para validar su eficacia y robustez.
En la tesis también se aborda el problema de la ejecución concurrente de
kernels (CKE) analizándolo desde el punto de vista software y hardware. En este
problema se busca planificar un conjunto de kernels para su coejecución y de esta
forma mejorar el uso de los recursos hardware.