StarPU Handbook

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Compilation Configuration

The behavior of the StarPU library and tools may be tuned thanks to the following configure options.

# Common Configuration

–enable-debug

  Enable debugging messages.

–enable-spinlock-check

  Enable checking that spinlocks are taken and released properly.

–enable-fast

  Disable assertion checks, which saves computation time.

–enable-verbose

  Increase the verbosity of the debugging messages. This can be disabled at runtime by setting the environment variable STARPU_SILENT to any value.

      $ STARPU_SILENT=1 ./vector_scal

–enable-coverage

  Enable flags for the coverage tool `gcov`.

–enable-quick-check

  Specify tests and examples should be run on a smaller data set, i.e allowing a faster execution time

–enable-long-check

  Enable some exhaustive checks which take a really long time.

–with-hwloc

  Specify `hwloc` should be used by StarPU. `hwloc` should be found by the means of the tool `pkg-config`.

–with-hwloc=`prefix`

  Specify `hwloc` should be used by StarPU. `hwloc` should be found in the directory specified by `prefix`

–without-hwloc

  Specify `hwloc` should not be used by StarPU.

–disable-build-doc
  Disable the creation of the documentation. This should be done on a machine which does not have the tools `doxygen` and `latex` (plus the packages `latex-xcolor` and `texlive-latex-extra`).

Additionally, the script `configure` recognize many variables, which can be listed by typing `./configure –help`. For example, `./configure NVCCFLAGS="-arch sm_13"` adds a flag for the compilation of CUDA kernels.

# Configuring Workers

–enable-maxcpus=`count`

  Use at most `count` CPU cores. This information is then available as the macro ::STARPU_MAXCPUS.

–disable-cpu

  Disable the use of CPUs of the machine. Only GPUs etc. will be used.

–enable-maxcudadev=`count`

  Use at most `count` CUDA devices. This information is then available as the macro STARPU_MAXCUDADEVS.

–disable-cuda

  Disable the use of CUDA, even if a valid CUDA installation was detected.

–with-cuda-dir=`prefix`

  Search for CUDA under `prefix`, which should notably contain the file `include/cuda.h`.

–with-cuda-include-dir=`dir`

  Search for CUDA headers under `dir`, which should notably contain the file `cuda.h`. This defaults to `/include` appended to the value given to --with-cuda-dir.

–with-cuda-lib-dir=`dir`

  Search for CUDA libraries under `dir`, which should notably contain the CUDA shared libraries—e.g., `libcuda.so`. This defaults to `/lib` appended to the value given to --with-cuda-dir.

–disable-cuda-memcpy-peer

  Explicitly disable peer transfers when using CUDA 4.0.

–enable-maxopencldev=`count`

  Use at most `count` OpenCL devices. This information is then available as the macro STARPU_MAXOPENCLDEVS.

–disable-opencl

  Disable the use of OpenCL, even if the SDK is detected.

–with-opencl-dir=`prefix`

  Search for an OpenCL implementation under `prefix`, which should notably contain `include/CL/cl.h` (or `include/OpenCL/cl.h` on Mac OS).

–with-opencl-include-dir=`dir`

  Search for OpenCL headers under `dir`, which should notably contain `CL/cl.h` (or `OpenCL/cl.h` on Mac OS). This defaults to `/include` appended to the value given to --with-opencl-dir.

–with-opencl-lib-dir=`dir`

  Search for an OpenCL library under `dir`, which should notably contain the OpenCL shared libraries—e.g. `libOpenCL.so`. This defaults to `/lib` appended to the value given to --with-opencl-dir.

–enable-opencl-simulator

  Enable considering the provided OpenCL implementation as a simulator, i.e. use the kernel duration returned by OpenCL profiling information as wallclock time instead of the actual measured real time. This requires simgrid support.

–enable-maximplementations=`count`

  Allow for at most `count` codelet implementations for the same target device. This information is then available as the macro ::STARPU_MAXIMPLEMENTATIONS macro.

–enable-max-sched-ctxs=`count`

  Allow for at most `count` scheduling contexts This information is then available as the macro ::STARPU_NMAX_SCHED_CTXS.

–disable-asynchronous-copy

  Disable asynchronous copies between CPU and GPU devices. The AMD implementation of OpenCL is known to fail when copying data asynchronously. When using this implementation, it is therefore necessary to disable asynchronous data transfers.

–disable-asynchronous-cuda-copy

  Disable asynchronous copies between CPU and CUDA devices.

–disable-asynchronous-opencl-copy

  Disable asynchronous copies between CPU and OpenCL devices. The AMD implementation of OpenCL is known to fail when copying data asynchronously. When using this implementation, it is therefore necessary to disable asynchronous data transfers.

# Extension Configuration

–disable-socl

  Disable the SOCL extension (SOCL OpenCL Extensions). By default, it is enabled when an OpenCL implementation is found.

–disable-starpu-top

  Disable the StarPU-Top interface (StarPU-Top Interface). By default, it is enabled when the required dependencies are found.

–disable-gcc-extensions

  Disable the GCC plug-in (C Extensions). By default, it is enabled when the GCC compiler provides a plug-in support.

–with-mpicc=`path`

  Use the compiler `mpicc` at `path`, for StarPU-MPI. (MPI Support).

–enable-mpi-progression-hook

  Enable the activity polling method for StarPU-MPI.

# Advanced Configuration

–enable-perf-debug

  Enable performance debugging through gprof.

–enable-model-debug

  Enable performance model debugging.

–enable-stats

  (see ../../src/datawizard/datastats.c) Enable gathering of various data statistics (Data Statistics).

–enable-maxbuffers

  Define the maximum number of buffers that tasks will be able to take as parameters, then available as the macro STARPU_NMAXBUFS.

–enable-allocation-cache

  Enable the use of a data allocation cache to avoid the cost of it with CUDA. Still experimental.

–enable-opengl-render

  Enable the use of OpenGL for the rendering of some examples.