Ayuda
Ir al contenido

Dialnet


Soporte para co-ejecución eficiente en sistemas heterogéneos

  • Autores: Borja Pérez Pavón
  • Directores de la Tesis: José Luis Bosque Orero (dir. tes.)
  • Lectura: En la Universidad de Cantabria ( España ) en 2019
  • Idioma: español
  • Títulos paralelos:
    • Efficient co-execution support in heterogeneous systems.
  • Tribunal Calificador de la Tesis: Enrique Salvador Quintana Ortí (presid.), Enrique Vallejo Gutiérrez (secret.), Daniel A. Jiménez (voc.)
  • Programa de doctorado: Programa de Doctorado en Ciencia y Tecnología por la Universidad de Cantabria
  • Materias:
  • Enlaces
  • Resumen
    • español

      Las arquitecturas heterogéneas ofrecen capacidades excelentes en términos tanto de rendimiento como de eficiencia energética. Sin embargo, la mayoría de sistemas y modelos de programación actuales consideran que los recursos heterogéneos son entidades totalmente independientes, dejando su gestión en manos del programador. Esto favorece el paralelismo de tareas y paradigmas de programación host-device. Como consecuencia, el programador no dispone de ninguna ayuda que facilite la colaboración de todos los dispositivos disponibles, realizando el cómputo asociado a una sola tarea y aprovechando el paralelismo de datos. Esta forma de operar recibe el nombre de co-ejecución y actualmente requiere que el programador divida manualmente la carga de trabajo, teniendo que encargarse de decisiones complejas como el equilibrio de carga o la distribución de datos. Sin embargo, para que la co-ejecución sea verdaderamente útil, es necesario que no requiera mayor esfuerzo que la utilización de un solo dispositivo. Esta tesis propone técnicas tanto software como hardware que posibilitan una co-ejecución eficiente sin esfuerzo. Estas técnicas incluyen dos nuevos algoritmos de balanceo de carga, una librería de abstracción, una implementación de co-ejecución en un modelo de programación basado en tareas y el diseño de un nuevo dispatcher dar soporte hardware a la co-ejecución

    • English

      Heterogeneous architectures have become prevalent due to their outstanding performance and energy efficiency. However, programming these systems is far from trivial. Current heterogeneous programming models impose a host-device approach and favour task-parallelism. Applications developed following these kind of models are executed in the CPU and only certain compute intensive parts are explicitly offloaded to accelerators. On the contrary, co-execution, the cooperative operation of all the available devices computing for a single workload in a data-parallel manner, is overlooked. If desired, the programmer will be in charge of manually managing the devices, the data distribution and the division of the workload, effectively expressing co-execution in terms of task-parallelism and representing a significant amount of work.

      For co-execution to be useful it has to be effortless. This means that using every device in the computation of a single kernel should represent the same work as using a single device. To achieve this, the programmer needs to be abstracted from the underlying hardware and spared load balancing decisions. The former enables a transparent use of the whole system that eases programming and guarantees portability, as the programmer no longer has to worry about the devices. The latter aids the programmer to obtain good performance from co-execution, as these decisions are complex, depending on both the irregularity of the co-executed workload and the heterogeneity of the system itself.

      This dissertation makes several contributions towards effortless co-execution in heterogeneous systems, tackling abstraction and load balancing from both the software and hardware angles. HGuided and Sigmoid, two novel load balancing algorithms specially designed for co-execution, are proposed and evaluated, achieving outstanding performance. Maat, a new OpenCL-based load balancing library has been designed and implemented. It enables the abstract management of the whole system by providing the illusion of a single device representing all the available resources. Taking abstraction even further, co-execution and load balancing have also been implemented in OmpSs, as an evaluation of the interest of co-execution in task-based programming models. Lastly, a design for a dispatcher that enables hardware supported co-execution in integrated heterogeneous systems is presented and evaluated. These contributions ease the programming of heterogeneous systems and represent a significant improvement on both performance and energy efficiency.


Fundación Dialnet

Dialnet Plus

  • Más información sobre Dialnet Plus

Opciones de compartir

Opciones de entorno