High Productivity Multi-device Exploitation with the Heterogeneous Programming Library
![Thumbnail](/dspace/bitstream/handle/2183/28953/Vinas_Moises_2016_High_Productivity_Multi-device.pdf.jpg?sequence=6&isAllowed=y)
Use this link to cite
http://hdl.handle.net/2183/28953
Except where otherwise noted, this item's license is described as Atribución-NoComercial-SinDerivadas 4.0 Internacional
Collections
- GI-GAC - Artigos [190]
Metadata
Show full item recordTitle
High Productivity Multi-device Exploitation with the Heterogeneous Programming LibraryDate
2016Citation
VIÑAS, Moisés, et al. High productivity multi-device exploitation with the Heterogeneous Programming Library. Journal of Parallel and Distributed Computing, 2017, vol. 101, p. 51-68. DOI: 10.1016/j.jpdc.2016.11.001
Abstract
[Abstract] Heterogeneous devices require much more work from programmers than traditional CPUs, particularly when there are several of them, as each one has its own memory space. Multidevice applications require to distribute kernel executions and, even worse, arrays portions that must be kept coherent among the di_erent device memories and the host memory. In addition, when devices with di_erent characteristics participate in a computation, optimally distributing the work among them is not trivial. In this paper we extend an existing framework for the programming of accelerators called Heterogeneous Programming Library (HPL) with three kinds of improvements that facilitate these tasks. The _rst two ones are the ability to de_ne subarrays and subkernels, which distribute kernels on di_erent devices. The last one is a convenient extension of the subkernel mechanism to distribute computations among heterogeneous devices seeking the best work balance among them. This last contribution includes two analytical models that have proved to automatically provide very good work distributions. Our experiments also show the large programmability advantages of our approach and the negligible overhead incurred.
Keywords
Programmability
Heterogeneity
Parallelism
Portability
Libraries
Load balancing
OpenCL
Heterogeneity
Parallelism
Portability
Libraries
Load balancing
OpenCL
Editor version
Rights
Atribución-NoComercial-SinDerivadas 4.0 Internacional