Software
StarPU
StarPU is freely available to all users of HPC2N.
A Unified Runtime System for Heterogeneous Multicore Architectures StarPU is a task programming library for hybrid 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 the StarPU's high level GCC plugin pragmas, StarPU's rich C API, or OpenMP pragmas.
StarPU handles run-time concerns
- 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 concerns!
On HPC2N we have StarPU available as a module on Kebnekaise.
We have versions available for normal compute nodes, for GPUs, and for the KNL nodes.
The tests and examples have not been built.
To use the StarPU module, first add it to your environment. Use:
module spider starpu
to see which versions are available, as well as how to load the module and the prerequisites.
Note that all names of modules are case-sensitive when loading the modules.
The command
ml show StarPU/<version>
will give the paths and environment variables that will be set by the module.
In the directory $EBROOTSTARPU/easybuild/ you will find the .eb file that was used to build the module. In there, under 'configopts' you will find the options the module was built with.
You can read more about loading modules on our Accessing software with Lmod page and our Using modules (Lmod) page.
Variant | Built with |
---|---|
StarPU/1.2.2-fast | --enable-blas-lib=mkl --enable-maxcpus=288 --enable-maxcudadev=8 --enable-fast |
StarPU/1.2.2-fxt | --enable-blas-lib=mkl --enable-maxcpus=288 --enable-maxcudadev=8 --with-fxt |
They can both be loaded with or without GPU capability. It is easiest to load the corresponding intel version instead of the separate icc, ifort, and impi modules.
Example, loading StarPU/1.2.2-fast without GPU
ml intel/2017a ml StarPU/1.2.2-fast
Example, loading StarPU/1.2.2-fast with GPU
ml intelcuda/2016.11 ml StarPU/1.2.2-fast
KNL
In order to use StarPU on the KNL nodes, you need to login to
kebnekaise-knl.hpc2n.umu.se
The same variants of StarPU can be found there (with or without fast enabled).
Example, loading StarPU/1.2.2-fast
ml intel/2017a ml StarPU/1.2.2-fast
We have some more information about running on the KNL nodes here.
We have some information from one of our courses (Task-based parallelism in scientific computing) which contains an overview and example for StarPU:
Materials from the course:
- StarPU part 1 presentations and recording on YouTube
- StarPU part 2 presentations and recording on YouTube
- Example for LU factorization: presentation and recording on YouTube
In general, documentation for StarPU can be found on the StarPU homepage in PDF and HTML format.