Quick Start Guide

Using the StarPU sources

You can easily try StarPU on the Cholesky factorization, for instance. Make sure to have pkg-config, hwloc for proper CPU control, as well as BLAS kernels installed and configured in your environment for your computation units (e.g. MKL for CPUs and CUBLAS for GPUs).

someversion=1.4.2 # for example
wget http://files.inria.fr/starpu/starpu-$someversion/starpu-${someversion}.tar.gz
tar xf starpu-${someversion}.tar.gz
cd starpu-${someversion}
mkdir build && cd build
../configure
make -j 12
STARPU_SCHED=dmdas ./examples/cholesky/cholesky_implicit -size $((960*40)) -nblocks 40
STARPU_SCHED=dmdas mpirun -np 4 -machinefile mymachines ./mpi/examples/matrix_decomposition/mpi_cholesky_distributed -size $((960*40*4)) -nblocks $((40*4))

Note that the dmdas scheduler uses performance models, and thus needs calibration execution before exhibiting optimized performance (until the model something is not calibrated enough messages go away).

To get a glimpse at what happened, you can get an execution trace by installing FxT and ViTE, and enabling traces:

../configure --with-fxt
make -j 12
STARPU_FXT_TRACE=1 STARPU_SCHED=dmdas ./examples/cholesky/cholesky_implicit -size $((960*40)) -nblocks 40
./tools/starpu_fxt_tool -i /tmp/prof_file_${USER}_0
vite paje.trace

Starting with StarPU 1.1, it is also possible to reproduce the performance that we show in our articles on our machines, by installing SimGrid, and then using the simulation mode of StarPU using the performance models of our machines:

../configure --enable-simgrid
make -j 12
STARPU_PERF_MODEL_DIR=$PWD/../tools/perfmodels/sampling STARPU_HOSTNAME=mirage STARPU_SCHED=dmdas ./examples/cholesky/cholesky_implicit -size $((960*40)) -nblocks 40
# size	ms	GFlops
38400	9915	1903.7

(MPI simulation is not supported yet)

Using the StarPU docker image

Docker images for StarPU are available from registry.gitlab.inria.fr/starpu/docker/starpu.

Note that these images provide NVIDIA support for GPU devices. You will find more informations on https://gitlab.inria.fr/starpu/starpu-docker

Here is an example on how to use these images. By default, the latest master version of StarPU is built within the image. Other images are also available. The list of tags is available at https://gitlab.inria.fr/starpu/starpu-docker/container_registry/2057

docker run -it registry.gitlab.inria.fr/starpu/starpu-docker/starpu:latest
...
gitlab@42c20306e808:~$ starpu_machine_display
[starpu][42c20306e808][check_bus_config_file] No performance model for the bus, calibrating...
[starpu][42c20306e808][check_bus_config_file] ... done
Real hostname: 42c20306e808 (StarPU hostname: 42c20306e808)
StarPU has found :
...
gitlab@42c20306e808:~$ cd /usr/local/lib/starpu/
gitlab@42c20306e808:/usr/local/lib/starpu/examples$ ./vector_scal
[BEFORE] 1-th element    : 2.00
[BEFORE] (NX-1)th element: 204800.00
[AFTER] 1-th element     : 6.28 (should be 6.28)
[AFTER] (NX-1)-th element: 643072.00 (should be 643072.00)
[AFTER] Computation is correct
gitlab@42c20306e808:/usr/local/lib/starpu/examples$

Using StarPU on national clusters

If you are using the Jean Zay supercomputer, StarPU is already installed as a module. See this page to find out how to use it.