Mostrar el registro sencillo del ítem

dc.contributor.advisorGuil-Mata, Nicolás 
dc.contributor.advisorGonzález-Linares, José María 
dc.contributor.advisorGómez-Luna, Juan
dc.contributor.authorLázaro Muñoz, Antonio José
dc.contributor.otherArquitectura de Computadoresen_US
dc.date.accessioned2019-10-22T07:07:04Z
dc.date.available2019-10-22T07:07:04Z
dc.date.issued2019-10
dc.identifier.urihttps://hdl.handle.net/10630/18622
dc.descriptionTodos estos mecanismos se encargan de planificar las distintas tareas pero ninguno de ellos tienen en cuenta las transferencias de datos necesarias para completar las tareas. El rendimiento que se puede conseguir por la ejecución concurrente de un grupo de tareas es muy dependiente del orden de lanzamiento de las mismas. Una tarea habitualmente está compuesta por algunas (o ninguna) transferencias host to device (HtD), seguidas de uno o más comandos de ejecución, kernels, y por último algunas (o ninguna) transferencias device to host (DtH}). El envío de estas tareas a la GPU o al acelerador se realiza por medio de colas de comandos (o streams en terminología NVIDIA CUDA). De forma general, para conseguir la ejecución concurrente de tareas en un acelerador, estas deben lanzarse por distintas colas de comandos. En esta tesis se aborda el problema de planificar un conjunto de tareas en un entorno HPC con aceleradores conectados mediante buses PCIe que son usados concurrentemente por diferentes aplicaciones. Concretamente, nos hemos planteado estudiar cómo se ejecuta un grupo de tareas en un acelerador, y de qué forma podemos mejorar la planificación de esas tareas para disminuir el tiempo total de ejecución y aumentar la ocupación de los recursos hardware. Para ello nos hemos marcado los siguientes objetivos: 1. Obtener un modelo de ejecución de tareas que permita simular con exactitud los procesos de transferencias de datos y ejecución de kernels. 2. Diseñar un sistema de ejecución de tareas que permita explotar las posibilidades de concurrencia entre comandos pertenecientes a tareas distintas. 3. Proponer métodos que permitan encontrar, en tiempo de ejecución, cuál es el orden de planificación más adecuado para un grupo de tareas arbitrario. 4. Generalizar todas las propuestas para que sean viables tanto sobre arquitecturas distintas (NVIDIA, AMD e Intel) como sobre entornos diferentes (CUDA y OpenCL). 5. Validar todas las propuestas usando tareas reales y con cargas de trabajo heterogéneas que permitan representar cualquier combinación de grupos de tareas. Fecha de lectura de Tesis Doctoral: 8 de marzo de 2019.en_US
dc.description.abstractLas arquitecturas de computación de alto rendimiento (HPC) se han convertido en una herramienta clave para la investigación y desarrollo de aplicaciones en diversos campos científicos y técnicos. La incorporación de unidades de procesamiento especializadas, también llamadas aceleradores, conectadas mediante buses, como el bus PCIe, han incrementado el rendimiento conseguido por este tipo de arquitecturas. Las plataformas constituidas mediante la combinación de CPUs y aceleradores se denominan heterogéneas ya que incluyen arquitecturas con distintos conjuntos de instrucciones. En la actualidad son cada vez más habituales los sistemas de computación que usan diferentes clases de procesadores (normalmente CPUs y GPUs). Esta incorporación de distintos procesadores permite mejorar la flexibilidad y eficiencia del sistema para la computación de tareas particulares. Aunque la capacidad de procesamiento de propósito general de las GPUs permite realizar de forma eficiente cálculos matemáticos, las CPUs modernas son también capaces de alcanzar un rendimiento computacional similar aprovechando sus capacidades de paralelismo a nivel de instrucción y baja latencia. Es por ello que la gestión de estas plataformas heterogéneas requiere de sistemas de planificación que identifiquen cuáles tareas son más adecuadas para cada procesador. La ejecución concurrente de varias aplicaciones puede dar lugar al envío de varios kernels al acelerador. El soporte hardware para la ejecución concurrente de kernels varía de un acelerador a otro. Por ejemplo, en el caso de NVIDIA se denomina Hyper-Q a un conjunto de hasta 32 conexiones simultáneas, gestionadas por hardware, que permiten lanzar tareas independientes, mientras que en el caso de AMD se usan hasta 8 Asynchronous Compute Engines (ACEs) que pueden gestionar hasta 8 colas hardware cada uno de ellos.en_US
dc.language.isospaen_US
dc.publisherUma Editorialen_US
dc.rightsinfo:eu-repo/semantics/openAccessen_US
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/4.0/*
dc.subjectIngeniería de ordenadores - Tesis doctoralesen_US
dc.subjectArquitectura de ordenadores - Tesis doctoralesen_US
dc.subjectOrdenadores - Organización - Tesis doctoralesen_US
dc.subject.otherHyperQen_US
dc.subject.otherPlanficación de Tareasen_US
dc.subject.otherCUDA Streamsen_US
dc.subject.otherColas de Comandosen_US
dc.subject.otherEjecución Concurrenteen_US
dc.titlePlanificación Dinámica de Tareas en Aceleradoresen_US
dc.typeinfo:eu-repo/semantics/doctoralThesisen_US
dc.centroE.T.S.I. Informáticaen_US
dc.rights.ccAttribution-NonCommercial-NoDerivatives 4.0 Internacional*


Ficheros en el ítem

Este ítem aparece en la(s) siguiente(s) colección(ones)

Mostrar el registro sencillo del ítem

Attribution-NonCommercial-NoDerivatives 4.0 Internacional
Excepto si se señala otra cosa, la licencia del ítem se describe como Attribution-NonCommercial-NoDerivatives 4.0 Internacional