Bozkuş, ZekiViñas,M.Bozkus,Z.Fraguela,B.B.2024-10-152024-10-152013270743-7315https://doi.org/10.1016/j.jpdc.2013.07.013https://hdl.handle.net/20.500.12469/6453While recognition of the advantages of heterogeneous computing is steadily growing, the issues of programmability and portability hinder its exploitation. The introduction of the OpenCL standard was a major step forward in that it provides code portability, but its interface is even more complex than that of other approaches. In this paper, we present the Heterogeneous Programming Library (HPL), which permits the development of heterogeneous applications addressing both portability and programmability while not sacrificing high performance. This is achieved by means of an embedded language and data types provided by the library with which generic computations to be run in heterogeneous devices can be expressed. A comparison in terms of programmability and performance with OpenCL shows that both approaches offer very similar performance, while outlining the programmability advantages of HPL. © 2013 Elsevier Inc. All rights reserved.eninfo:eu-repo/semantics/openAccessCode generationHeterogeneityLibrariesOpenCLParallelismPortabilityProgrammabilityExploiting heterogeneous parallelism with the Heterogeneous Programming LibraryArticle16271638127310.1016/j.jpdc.2013.07.0132-s2.0-84885951736Q2Q1