Publication:
Application partitioning and mapping techniques for heterogeneous parallel platforms

Loading...
Thumbnail Image
Identifiers
Publication date
2016-06
Defense date
2016-07-18
Tutors
Journal Title
Journal ISSN
Volume Title
Publisher
Impact
Google Scholar
Export
Research Projects
Organizational Units
Journal Issue
Abstract
In recent years, performance gains provided by clock and ILP techniques have considerably slowed down. As a result, parallel programming has become the dominant programming paradigm used to improve performance in multi-core devices. In line with this, parallel use of specialized accelerators has started gaining importance. However, adapting legacy source code in order to make use of these technologies is a time consuming and error prone task, requiring specialised knowledge. The main goal of this Thesis is to simplify the task of transforming sequential legacy code into parallel code. This code will be capable of making full use of the different computing devices that an heterogeneous parallel platform can have, such as modern CPUs, GPUs, FPGAs, and DSPs. With this, it is possible to improve sequential code based on different criteria, such as time performance. As a result, we propose an architecture description language to describe heterogeneous parallel platforms. We suggest a new software annotation syntax to describe the behaviour of the code from a high-level point of view while preserving its maintainability, along with automatic annotation techniques. Finally, we propose a set of task partitioning techniques to split the code and execute it in parallel using the available computing devices. Results aim to demonstrate that the proposed techniques can be applied to different accelerator devices and source code, and that the chosen metrics are improved with respect to the original sequential code.
En los últimos años, el rendimiento derivado de la frecuencia de reloj y de las técnicas de ILP se han reducido considerablemente. Como resultado, la programación paralela se ha convertido en el paradigma predominante a la hora de mejorar el rendimiento en dispositivos multi-core. A raíz de esto, el uso en paralelo de aceleradores especializados ha empezado a cobrar importancia. No obstante, adaptar código legado para hacer uso de estas tecnologías es una tarea tediosa y proclive a errores, para la que se requiere un conocimiento muy específico. El objetivo principal de esta Tesis es simplificar la tarea de transformar código legado secuencial en código paralelo. Este código podría utilizar los distintos dispositivos de cómputo disponibles en una plataforma paralela heterogénea, tales como CPUs, GPUs, FPGAs o DSPs. Así, es posible mejorar código secuencial en base a distintos criterios, como el rendimiento. Como resultado, se propone un lenguaje de descripción de arquitecturas para describir plataformas paralelas heterogéneas. Se sugiere una nueva sintaxis de anotación del software para describir el comportamiento del programa desde un punto de vista de alto nivel, preservando su mantenibilidad, así como técnicas de anotación automática. Finalmente, se propone un conjunto de técnicas de particionamiento para dividir el programa y ejecutarlo en paralelo haciendo uso de los distintos dispositivos de cómputo. Los resultados buscan demostrar que las técnicas propuestas se pueden aplicar a distintos aceleradores y códigos fuente, y que las métricas escogidas mejoran con respecto a las del código secuencial original.
Description
Mención Internacional en el título de doctor
Keywords
Heterogeneous parallel platforms, Architecture description language, Parallel code, Software annotation syntax, Partitioning techniques, Mapping
Bibliographic citation
Collections