C Language Extensions for Hybrid CPU/GPU Programming with StarPU

Modern platforms used for high-performance computing (HPC) include machines with both general-purpose CPUs, and "accelerators", often in the form of graphical processing units (GPUs). StarPU is a C library to exploit such platforms. It provides users with ways to define "tasks" to be executed on CPUs or GPUs, along with the dependencies among them, and by automatically scheduling them over all the available processing units. In doing so, it also relieves programmers from the need to know the underlying architecture details: it adapts to the available CPUs and GPUs, and automatically transfers data between main memory and GPUs as needed. While StarPU's approach is successful at addressing run-time scheduling issues, being a C library makes for a poor and error-prone programming interface. This paper presents an effort started in 2011 to promote some of the concepts exported by the library as C language constructs, by means of an extension of the GCC compiler suite. Our main contribution is the design and implementation of language extensions that map to StarPU's task programming paradigm. We argue that the proposed extensions make it easier to get started with StarPU,eliminate errors that can occur when using the C library, and help diagnose possible mistakes. We conclude on future work.

Data and Resources

Additional Info

Field Value
Source https://inria.hal.science/hal-00807033
Author Courtès, Ludovic
Maintainer CCSD
Last Updated May 11, 2026, 16:20 (UTC)
Created May 11, 2026, 16:20 (UTC)
Identifier Report N°: RR-8278
Language en
Rights https://about.hal.science/hal-authorisation-v1/
contributor Efficient runtime systems for parallel architectures (RUNTIME) ; Centre Inria de l'Université de Bordeaux ; Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria)-Université de Bordeaux (UB)-Centre National de la Recherche Scientifique (CNRS)
creator Courtès, Ludovic
date 2013-04-05T00:00:00
harvest_object_id edc3bfe2-7243-4a10-b4df-010a2b8dfa84
harvest_source_id 3374d638-d20b-4672-ba96-a23232d55657
harvest_source_title test moissonnage SELUNE
metadata_modified 2025-06-12T00:00:00
relation info:eu-repo/semantics/altIdentifier/arxiv/1304.0878
set_spec type:REPORT