RT info:eu-repo/semantics/article T1 Multi-Device Controllers: A Library To Simplify The Parallel Heterogeneous Programming A1 Moretón Fernández, Ana A1 González Escribano, Arturo A1 Llanos Ferraris, Diego Rafael AB Current HPC clusters are composed by several machines with different computation capabilities and different kinds and families of accelerators. Programming efficiently for these heterogeneous systems has become an important challenge. There are many proposals to simplify the programming and management of accelerator devices, and the hybrid programming, mixing accelerators and CPU cores. However, in many cases, portability compromises the efficiency on different devices, and there are details concerning the coordination of different types of devices that should still be tackled by the programmer. In this work, we introduce the Multi-Controller, an abstract entity implemented in a library that coordinates the management of heterogeneous devices, including accelerators with different capabilities and sets of CPU-cores. Our proposal improves state-of-the-art solutions, simplifying data partition, mapping and the transparent deployment of both, simple generic kernels portable across different device types, and specialized implementations defined and optimized using specific native or vendor programming models (such as CUDA for NVIDIA’s GPUs, or OpenMP for CPU-cores). The run-time system automatically selects and deploys the most appropriate implementation of each kernel for each device, managing data movements and hiding the launch details. The results of an experimental study with five study cases indicates that our abstraction allows the development of flexible and highly efficient programs that adapt to the heterogeneous environment. PB Springer YR 2017 FD 2017 LK http://uvadoc.uva.es/handle/10324/29113 UL http://uvadoc.uva.es/handle/10324/29113 LA eng NO International Journal of Parallel Programming, ISSN 0885-7458, Springer NO Producción Científica DS UVaDOC RD 26-abr-2024