Improving the programmability of heterogeneous systems by means of libraries

Moisés Viñas Buceta · Dialnet (Universidad de la Rioja) · 2016

espanolEl empleo de dispositivos heterogeneos como co-procesadores en entornos de computacion de altas prestaciones (HPC) ha. crecido ininterrumpidamente durante los ultimos anos debido a. sus excelentes propiedades en terminos de rendimiento y consumo de energia. La mayor disponibilidad de sistemas HPC hibridos conllevo de forma natural la necesidad de desarrollar herramientas de programacion adecuadas para. ellos, siendo CUDA y OpenCL las mas ampliamente utilizadas en la actualidad. Desafortunadamente, estas herramientas son relativamente de bajo nivel, lo cual emparejado con el mayor numero de detalles que han de ser controlados cuando se programan aceleradoras, hacen de la programacion de estos sistemas mediante ell8S mucho mas compleja que la programacion tradicional de CPUs. Esto ha llevado a la propuesta de alternativ8S de mas alto nivel para facilitar la programacion de dispositivos heterogeneos. Esta tesis contribuye a este campo presentando dos librerias que mejoran ampliamente la programabilidad de sistemas heterogeneos en C++, permitiendo a los usuarios centrarse en lo que hay que hacer en vez de en las tareas de bajo nivel. Nuestras propuestas, la libreria Heterogeneous Progromming Librory (HPL) y la libreria Heterogeneous Hierorchioolly Tiled Arrays (H2TA), estan disenadas para nodos con una o mas aceleradoras, y para clusters heterogeneos, respectivamente. Ambas librerias, han demostrado ser capaces de incrementar la productividad de los usuarios mejorando la programabilidad de sus codigos, y al mismo tiempo, lograr un rendimiento similar al de soluciones de mas bajo nivel. EnglishThe 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.

Read the paper · More papers on PaperTik