Improving the programmability of heterogeneous systems by means of libraries

  1. Viñas Buceta, Diego
Dirixida por:
  1. Basilio B. Fraguela Director
  2. Diego Andrade Director

Universidade de defensa: Universidade da Coruña

Fecha de defensa: 04 de xullo de 2016

Tribunal:
  1. Francisco Almeida Rodriguez Presidente/a
  2. Juan Touriño Secretario
  3. Sabela Ramos Garea Vogal
Departamento:
  1. Enxeñaría de Computadores

Tipo: Tese

Teseo: 425200 DIALNET lock_openRUC editor

Resumo

The usage of heterogeneous devices as co-processors in high performance computing (HPC) environments has steadily grown during the last years due to their excellent properties in terms of perfonnance and energy consumption. The larger a.vailability of hybrid HPC systems naturally led to the need to develop suitable programming tools for them, being the most widely tL'ied nowadays CUDA and OpenCL. Unfortlmatciy, these tools are relativcly low leve), which coupled with the large DUlllber of deta.ils that must be monaged when programming accelerators, makes the programm.ing of these systems using them much more complex thon that of trad.itional CPUs. This has led to the proposal of higher leve) alternatives that facilitate the progranuning of heterogeneous devices. This thesis contri bu tes to this field presenting two libraries that largely improve the programma.bility of heterogeneous systeins in C++, helping users to focus on what todo rather thtlJl onlow leve) tasks. These two libraries, the Heterogeneous Programming Library (HPL) and the Heterogeneous Hierarch.ically Tiled Arrays (H2TA), are well suited to nodes with one or more accelerators, a.nd to heterogeneous clusters, respectively. Both libraries have proveo to be able to incresse the productivity of the users improving the progro. mmability of their codes, and at the s8llle time, achieving performance similar to that of lower leve) solutions.