Programming Heterogeneous Architectures Using Hierarchical Tasks - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Journal Articles Concurrency and Computation: Practice and Experience Year : 2023

Programming Heterogeneous Architectures Using Hierarchical Tasks


Task-based systems have become popular due to their ability to utilize the computational power of complex heterogeneous systems. A typical programming model used is the Sequential Task Flow (STF) model, which unfortunately only supports static task graphs. This can result in submission overhead and a static task graph that is not well-suited for execution on heterogeneous systems. A common approach is to find a balance between the granularity needed for accelerator devices and the granularity required by CPU cores to achieve optimal performance. To address these issues, we have extended the STF model in the STARPU runtime system by introducing the concept of hierarchical tasks. This allows for a more dynamic task graph and, when combined with an automatic data manager, it is possible to adjust granularity at runtime to best match the targeted computing resource. That data manager makes it possible to switch between various data layout without programmer input and allows us to enforce the correctness of the DAG as hierarchical tasks alter it during runtime. Additionally, submission overhead is reduced by using large-grain hierarchical tasks, as the submission process can now be done in parallel. We have shown that the hierarchical task model is correct and have conducted an early evaluation on shared memory heterogeneous systems using the CHAMELEON dense linear algebra library.
Fichier principal
Vignette du fichier
finale_submission.pdf (498.33 Ko) Télécharger le fichier
Origin Files produced by the author(s)

Dates and versions

hal-04088833 , version 1 (04-05-2023)
hal-04088833 , version 2 (11-05-2023)



Mathieu Faverge, Nathalie Furmento, Abdou Guermouche, Gwenolé Lucas, Raymond Namyst, et al.. Programming Heterogeneous Architectures Using Hierarchical Tasks. Concurrency and Computation: Practice and Experience, inPress, 35 (25), ⟨10.1002/cpe.7811⟩. ⟨hal-04088833v2⟩
166 View
137 Download



Gmail Mastodon Facebook X LinkedIn More