Star PU
1. Introduction
StarPU is a sophisticated C task scheduling library designed for hybrid architectures, enabling users to define tasks that can be executed on both CPUs and GPUs. It facilitates the specification of dependencies between these tasks and efficiently manages their scheduling across all available processing units. The primary objective of StarPU is to create systems where applications are distributed throughout the entire machine, allowing parallel tasks to run concurrently on all accessible resources.
The library meticulously tracks the locations of data copies across various memory units associated with the accelerators and incorporates mechanisms such as data preloading to enhance performance. This approach has led to significant reductions in computation time and improved efficiency in utilizing diverse computational resources, particularly in multi-core environments equipped with multiple accelerators. By abstracting the underlying technical complexities, StarPU allows programmers to focus on higher-level algorithmic concerns while it autonomously adapts to the available processing units and manages necessary data transfers.
StarPU provides algorithms and constraints for task implementations, supporting CPU/GPU executions through a task graph that can be constructed using its comprehensive C/C++/Fortran/Python API or OpenMP pragmas. Internally, StarPU addresses several critical aspects:
-
Management of task dependencies.
-
Optimized heterogeneous scheduling.
-
Efficient data transfers and replication between main memory and discrete memory units.
-
Enhanced communication within clusters.
-
Optimized data transfers and replication between main memory and discrete memories.
-
Optimized cluster communications.
The app provides algorithms and constraints :
-
CPU/GPU implementations of tasks
-
A task graph, using either StarPU’s rich C/C++/Fortran/Python API or OpenMP pragmas.
2. References
-
[1] hpc2n.github.io/Task-based-parallelism/branch/master/starpu1/#hello-world
-
[3] hpc2n.github.io/Task-based-parallelism/branch/master/starpu1/#benefits-and-downsides
-
[4] indico.math.cnrs.fr/event/6415/attachments/2736/3475/2021.02.24_-exa2pro-eocoe_workshop-StarPU-_S._Thibault.pdf
-
[5] gitub.u-bordeaux.fr/starpu/starpu/-/tree/master/examples