Extending OmpSs for OpenCL kernel co-execution in heterogeneous systems
Department of Computer Science and Electronics, Universidad de Cantabria, Santander, Spain
29th International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD), 2017
@inproceedings{perez2017extending,
title={Extending OmpSs for OpenCL kernel co-execution in heterogeneous systems},
author={P{‘e}rez, Borja and Stafford, Esteban and Bosque, Jose Luis and Beivide, Ramon and Mateo, Sergi and Teruel, Xavier and Martorell, Xavier and Ayguad{‘e}, Eduard},
booktitle={2017 29th International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD)},
pages={1–8},
year={2017},
organization={IEEE}
}
Heterogeneous systems have a very high potential performance but present difficulties in their programming. OmpSs is a well known framework for task based parallel applications, which is an interesting tool to simplify the programming of these systems. However, it does not support the co-execution of a single OpenCL kernel instance on several compute devices. To overcome this limitation, this paper presents an extension of the OmpSs framework that solves two main objectives: the automatic division of datasets among several devices and the management of their memory address spaces. To adapt to different kinds of applications, the data division can be performed by the novel HGuided load balancing algorithm or by the well known Static and Dynamic. All this is accomplished with negligible impact on the programming. Experimental results reveal that there is always one load balancing algorithm that improves the performance and energy consumption of the system.
December 24, 2017 by hgpu