On the roles of the programmer, the compiler and the runtime system when programming accelerators in OpenMP
10.1007/978-3-319-11454-5_16
Inclou dades d'ús des de 2022
Cita com:
hdl:2117/27886
Tipus de documentText en actes de congrés
Data publicació2014
EditorSpringer
Condicions d'accésAccés obert
Tots els drets reservats. Aquesta obra està protegida pels drets de propietat intel·lectual i
industrial corresponents. Sense perjudici de les exempcions legals existents, queda prohibida la seva
reproducció, distribució, comunicació pública o transformació sense l'autorització del titular dels drets
Abstract
OpenMP includes in its latest 4.0 specification the accelerator model. In this paper we present a partial implementation of this specification in the OmpSs programming model developed at the Barcelona Supercomputing Center with the aim of identifying which should be the roles of the programmer, the compiler and the runtime system in order to facilitate the asynchronous execution of tasks in architectures with multiple accelerator devices and processors. The design of OmpSs is highly biassed to delegate most of the decisions to the runtime system, which based on the task graph built at runtime (depend clauses) is able to schedule tasks in a data flow way to the available processors and accelerator devices and orchestrate data transfers and reuse among multiple address spaces. For this reason our implementation is partial, just considering from 4.0 those directives that enable the compiler the generation of the so called “kernels” to be executed on the target device. Several extensions to the current specification are also presented, such as the specification of tasks in “native” CUDA and OpenCL or how to specify the device and data privatization in the target construct. Finally, the paper also discusses some challenges found in code generation and a preliminary performance evaluation with some kernel applications.
CitacióOzen, G.; Ayguade, E.; Labarta, J. On the roles of the programmer, the compiler and the runtime system when programming accelerators in OpenMP. A: International Workshop on OpenMP. "Using and Improving OpenMP for Devices, Tasks, and More 10th International Workshop on OpenMP, IWOMP 2014 Salvador, Brazil, September 28-30, 2014: proceedings". Salvador: Springer, 2014, p. 215-229.
ISBN978-3-319-11453-8
Versió de l'editorhttp://link.springer.com/chapter/10.1007%2F978-3-319-11454-5_16
Fitxers | Descripció | Mida | Format | Visualitza |
---|---|---|---|---|
macc_submission.pdf | On the roles of the programmer, the compiler and the runtime system when programming accelerators in OpenMP | 326,6Kb | Visualitza/Obre |