Improving the programmability of heterogeneous systems by means of libraries

Ver/Abrir
Use este enlace para citar
http://hdl.handle.net/2183/16996Colecciones
- Teses de doutoramento [2227]
Metadatos
Mostrar el registro completo del ítemTítulo
Improving the programmability of heterogeneous systems by means of librariesAutor(es)
Directores
Andrade Canosa, DiegoFraguela Rodríguez, Basilio B.
Fecha
2016Centro/Dpto/Entidad
Universidade da Coruña. Departamento de Electrónica e SistemasResumen
[Resumo]
O emprego de dispositivos heteroxéneos coma co-procesadores en entornos de
computación de altas prestacións (HPC) medrou ininterrompidamente nos últimos
anos debido ás súas excelentes propiedades en termos de rendemento e consumo de
enerx:ía. A ma.ior dispoñibilidade de sistemas HPC híbridos conlevou de forma natural
a necesidade de desenrolar ferra.mentas de programación adecuadas para eles,
sendo CUDA e OpenCL as máis a.mplamente empregadas na actualidade. Desafortunadamente,
estas ferramentas son relativamente de baixo nivel, o cal emparellado co
ma.ior número de detalles que deben de ser controlados cando se programan aceleradoras,
fa.i da programación destes sistemas mediante elas, moito roáis complexa que a.
programación tradicional de CPUs. Isto levou á. proposta de alternativas de roáis alto
nivel para facilitar a programación de dispositivos heteroxéneos. Esta tesis contribúe
neste campo presentando dúas libreríe.<i que mellora.n ampla.mente a programabilidade
de sistemas heteroxéneos en C++, permitindo aos usuarios centrarse no que hai
que facer en vez de nas tarefas de baixo nivel. As nosas propostas, a librería. Heterogeneous
Progromming Libmry (HPL) e a. librería Heterogene.ous Hiemrchically Tiled
Arrays (H2TA), están deseñadas para nodos con unha ou má.is aceleradoras, e para
clusters heteroxéneos, respectivamente. Ambas librerías, demostraron ser capaces de
incrementar a. productividade dos usuarios mellora.ndo a programabilidade dos sem;
códigos, e ó mesmo tempo, lograr un rendemento semella.nte ó de solucións de roáis
baixo nivel. [Abstract]
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. [Resumen]
El empleo de dispositivos heterogéneos como co-procesadores en entornos de
computación de altas prestaciones (HPC) ha. crecido ininterrumpidamente durante
los últimos años debido a. sus excelentes propiedades en términos de rendimiento y
consumo de energía. La mayor disponibilidad de sistemas HPC híbridos conllevó de
forma natural la necesidad de desarrollar herramientas de programación adecuadas
para. ellos, siendo CUDA y OpenCL las más ampliamente utilizadas en la actualidad.
Desafortunadamente, estas herramientas son relativamente de bajo nivel, lo cual
emparejado con el mayor número de detalles que han de ser controlados cuando se
programan aceleradoras, hacen de la programación de estos sistemas mediante ell8S
mucho más compleja que la programación tradicional de CPUs. Esto ha llevado a la
propuesta de alternativ8S de más alto nivel para facilitar la programación de dispositivos
heterogéneos. Esta tesis contribuye a este campo presentando dos librerías que
mejoran ampliamente la programabilidad de sistemas heterogéneos 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 librería Heterogeneous Progromming Librory (HPL) y
la librería Heterogeneous Hierorchíoolly Tíled Arrays (H2TA), están diseñadas para
nodos con una o más aceleradoras, y para clusters heterogéneos, respectivamente.
Ambas librerías, han demostrado ser capaces de incrementar la productividad de los
usuarios mejorando la programabilidad de sus códigos, y al mismo tiempo, lograr
un rendimiento similar al de soluciones de más bajo nivel.
Palabras clave
Supercomputación
Superinformática
Paralelismo (Informática)
Superinformática
Paralelismo (Informática)
Derechos
Os titulares dos dereitos de propiedade intelectual autorizan a visualización do contido desta tese a través de Internet, así como a súa reproducción, gravación en soporte informático ou impresión para o seu uso privado e/ou con fins de estudo e de investigación. En nengún caso se permite o uso lucrativo deste documento. Estos dereitos afectan tanto ó resumo da tese como o seu contido Los titulares de los derechos de propiedad intelectual autorizan la visualización del contenido de esta tesis a través de Internet, así como su repoducción, grabación en soporte informático o impresión para su uso privado o con fines de investigación. En ningún caso se permite el uso lucrativo de este documento. Estos derechos afectan tanto al resumen de la tesis como a su contenido