Multi-device Controllers: A Library to Simplify Parallel Heterogeneous Programming

Ana Moreton-Fernandez, Arturo Gonzalez-Escribano, Diego R. Llanos
2017 International journal of parallel programming  
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, the portability compromises in many cases the efficiency on different devices, and there are details
more » ... bout the coordination of different types of devices that should be still tackled by the programmer. In this work we introduce the Multi-Controler (MCtrl), 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 the data partition, mapping, and 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 the data movements, and hiding the launching details. Results of an experimental study with four study cases indicates that our abstraction allows the development of flexible and high efficient programs, that adapt to the heterogeneous environment.
doi:10.1007/s10766-017-0542-x fatcat:r4tlgwkz5jhojhfp4s5xdx666y