StarPU: A Unified Runtime System for Heterogeneous Multicore Architectures
StarPU is a task programming library for hybrid architectures
- The application provides algorithms and constraints
- CPU/GPU implementations of tasks
- A graph of tasks, using either StarPU’s rich C/C++/Fortran/Python API, or OpenMP pragmas.
- StarPU internally deals with the following aspects:
- Task dependencies
- Optimized heterogeneous scheduling
- Optimized data transfers and replication between main memory and discrete memories
- Optimized cluster communications
Rather than handling low-level issues, programmers can concentrate on algorithmic aspects!
A video recording (26’) of presentation at the XDC2014 conference gives an overview of StarPU (slides)
- The latest tutorial material for StarPU is composed of two parts:
- A set of slides is also available to get an overview of StarPU.
The main development repository with issues and merge request is hosted on Inria’s GitLab, but a GitHub mirror is also available.