StarPU

Software name: 
StarPU
Policy 

StarPU is freely available to all users of HPC2N.

General 

A Unified Runtime System for Heterogeneous Multicore Architectures StarPU is a task programming library for hybrid architectures.

Description 

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!

Availability 

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.

Usage at HPC2N 

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.

Additional info 

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:

In general, documentation for StarPU can be found on the StarPU homepage in PDF and HTML format.

Updated: 2024-04-17, 14:47