/*
* This file is part of the StarPU Handbook.
* Copyright (C) 2009--2011 Universit@'e de Bordeaux 1
* Copyright (C) 2010, 2011, 2012, 2013 Centre National de la Recherche Scientifique
* Copyright (C) 2011, 2012 Institut National de Recherche en Informatique et Automatique
* See the file version.doxy for copying conditions.
*/
/*! \page CompilationConfiguration Compilation Configuration
The behavior of the StarPU library and tools may be tuned thanks to
the following configure options.
\section CommonConfiguration Common Configuration
- --enable-debug
-
\anchor enable-debug
\addindex __configure__--enable-debug
Enable debugging messages.
- --enable-debug
-
\anchor enable-debug
\addindex __configure__--enable-debug
Enable debugging messages.
- --enable-fast
-
\anchor enable-fast
\addindex __configure__--enable-fast
Disable assertion checks, which saves computation time.
- --enable-verbose
-
\anchor enable-verbose
\addindex __configure__--enable-verbose
Increase the verbosity of the debugging messages. This can be disabled
at runtime by setting the environment variable \ref STARPU_SILENT to
any value.
\verbatim
$ STARPU_SILENT=1 ./vector_scal
\endverbatim
- --enable-coverage
-
\anchor enable-coverage
\addindex __configure__--enable-coverage
Enable flags for the coverage tool gcov.
- --enable-quick-check
-
\anchor enable-quick-check
\addindex __configure__--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
-
\anchor enable-long-check
\addindex __configure__--enable-long-check
Enable some exhaustive checks which take a really long time.
- --with-hwloc
-
\anchor with-hwloc
\addindex __configure__--with-hwloc
Specify hwloc should be used by StarPU. hwloc should be found by the
means of the tool pkg-config.
- --with-hwloc=prefix
-
\anchor with-hwloc
\addindex __configure__--with-hwloc
Specify hwloc should be used by StarPU. hwloc should be found in the
directory specified by prefix
- --without-hwloc
-
\anchor without-hwloc
\addindex __configure__--without-hwloc
Specify hwloc should not be used by StarPU.
- --disable-build-doc
-
\anchor disable-build-doc
\addindex __configure__--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.
\section ConfiguringWorkers Configuring Workers
- --enable-maxcpus=count
-
\anchor enable-maxcpus
\addindex __configure__--enable-maxcpus
Use at most count CPU cores. This information is then
available as the macro ::STARPU_MAXCPUS.
- --disable-cpu
-
\anchor disable-cpu
\addindex __configure__--disable-cpu
Disable the use of CPUs of the machine. Only GPUs etc. will be used.
- --enable-maxcudadev=count
-
\anchor enable-maxcudadev
\addindex __configure__--enable-maxcudadev
Use at most count CUDA devices. This information is then
available as the macro ::STARPU_MAXCUDADEVS.
- --disable-cuda
-
\anchor disable-cuda
\addindex __configure__--disable-cuda
Disable the use of CUDA, even if a valid CUDA installation was detected.
- --with-cuda-dir=prefix
-
\anchor with-cuda-dir
\addindex __configure__--with-cuda-dir
Search for CUDA under prefix, which should notably contain the file
include/cuda.h.
- --with-cuda-include-dir=dir
-
\anchor with-cuda-include-dir
\addindex __configure__--with-cuda-include-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
\ref with-cuda-dir "--with-cuda-dir".
- --with-cuda-lib-dir=dir
-
\anchor with-cuda-lib-dir
\addindex __configure__--with-cuda-lib-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
\ref with-cuda-dir "--with-cuda-dir".
- --disable-cuda-memcpy-peer
-
\anchor disable-cuda-memcpy-peer
\addindex __configure__--disable-cuda-memcpy-peer
Explicitly disable peer transfers when using CUDA 4.0.
- --enable-maxopencldev=count
-
\anchor enable-maxopencldev
\addindex __configure__--enable-maxopencldev
Use at most count OpenCL devices. This information is then
available as the macro ::STARPU_MAXOPENCLDEVS.
- --disable-opencl
-
\anchor disable-opencl
\addindex __configure__--disable-opencl
Disable the use of OpenCL, even if the SDK is detected.
- --with-opencl-dir=prefix
-
\anchor with-opencl-dir
\addindex __configure__--with-opencl-dir
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
-
\anchor with-opencl-include-dir
\addindex __configure__--with-opencl-include-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
\ref with-opencl-dir "--with-opencl-dir".
- --with-opencl-lib-dir=dir
-
\anchor with-opencl-lib-dir
\addindex __configure__--with-opencl-lib-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
\ref with-opencl-dir "--with-opencl-dir".
- --enable-opencl-simulator
-
\anchor enable-opencl-simulator
\addindex __configure__--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
-
\anchor enable-maximplementations
\addindex __configure__--enable-maximplementations
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
-
\anchor enable-max-sched-ctxs
\addindex __configure__--enable-max-sched-ctxs
Allow for at most count scheduling contexts
This information is then available as the macro
::STARPU_NMAX_SCHED_CTXS.
- --disable-asynchronous-copy
-
\anchor disable-asynchronous-copy
\addindex __configure__--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
-
\anchor disable-asynchronous-cuda-copy
\addindex __configure__--disable-asynchronous-cuda-copy
Disable asynchronous copies between CPU and CUDA devices.
- --disable-asynchronous-opencl-copy
-
\anchor disable-asynchronous-opencl-copy
\addindex __configure__--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.
- --disable-asynchronous-mic-copy
-
\anchor disable-asynchronous-mic-copy
\addindex __configure__--disable-asynchronous-mic-copy
Disable asynchronous copies between CPU and MIC devices.
\section ExtensionConfiguration Extension Configuration
- --disable-socl
-
\anchor disable-socl
\addindex __configure__--disable-socl
Disable the SOCL extension (\ref SOCLOpenclExtensions). By
default, it is enabled when an OpenCL implementation is found.
- --disable-starpu-top
-
\anchor disable-starpu-top
\addindex __configure__--disable-starpu-top
Disable the StarPU-Top interface (\ref StarPU-TopInterface). By default, it
is enabled when the required dependencies are found.
- --disable-gcc-extensions
-
\anchor disable-gcc-extensions
\addindex __configure__--disable-gcc-extensions
Disable the GCC plug-in (\ref cExtensions). By default, it is
enabled when the GCC compiler provides a plug-in support.
- --with-mpicc=path
-
\anchor with-mpicc
\addindex __configure__--with-mpicc
Use the compiler mpicc at path, for StarPU-MPI.
(\ref MPISupport).
- --enable-mpi-progression-hook
-
\anchor enable-mpi-progression-hook
\addindex __configure__--enable-mpi-progression-hook
Enable the activity polling method for StarPU-MPI.
- --with-coi-dir
-
\anchor with-coi-dir
\addindex __configure__--with-coi-dir
Specify the directory to the COI library for MIC support.
The default value is /opt/intel/mic/coi
- --mic-host
-
\anchor mic-host
\addindex __configure__--mic-host
Specify the precise MIC architecture host identifier.
The default value is x86_64-k1om-linux
\section AdvancedConfiguration Advanced Configuration
- --enable-perf-debug
-
\anchor enable-perf-debug
\addindex __configure__--enable-perf-debug
Enable performance debugging through gprof.
- --enable-model-debug
-
\anchor enable-model-debug
\addindex __configure__--enable-model-debug
Enable performance model debugging.
- --enable-stats
-
\anchor enable-stats
\addindex __configure__--enable-stats
(see ../../src/datawizard/datastats.c)
Enable gathering of various data statistics (\ref DataStatistics).
- --enable-maxbuffers
-
\anchor enable-maxbuffers
\addindex __configure__--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
-
\anchor enable-allocation-cache
\addindex __configure__--enable-allocation-cache
Enable the use of a data allocation cache to avoid the cost of it with
CUDA. Still experimental.
- --enable-opengl-render
-
\anchor enable-opengl-render
\addindex __configure__--enable-opengl-render
Enable the use of OpenGL for the rendering of some examples.
\internal
TODO: rather default to enabled when detected
\endinternal
- --enable-blas-lib
-
\anchor enable-blas-lib
\addindex __configure__--enable-blas-lib
Specify the blas library to be used by some of the examples. The
library has to be 'atlas' or 'goto'.
- --disable-starpufft
-
\anchor disable-starpufft
\addindex __configure__--disable-starpufft
Disable the build of libstarpufft, even if fftw or cuFFT is available.
- --with-magma=prefix
-
\anchor with-magma
\addindex __configure__--with-magma
Search for MAGMA under prefix. prefix should notably
contain include/magmablas.h.
- --with-fxt=prefix
-
\anchor with-fxt
\addindex __configure__--with-fxt
Search for FxT under prefix.
FxT (http://savannah.nongnu.org/projects/fkt) is used to generate
traces of scheduling events, which can then be rendered them using ViTE
(\ref Off-linePerformanceFeedback). prefix should
notably contain include/fxt/fxt.h.
- --with-perf-model-dir=dir
-
\anchor with-perf-model-dir
\addindex __configure__--with-perf-model-dir
Store performance models under dir, instead of the current user's
home.
- --with-goto-dir=prefix
-
\anchor with-goto-dir
\addindex __configure__--with-goto-dir
Search for GotoBLAS under prefix, which should notably contain
libgoto.so or libgoto2.so.
- --with-atlas-dir=prefix
-
\anchor with-atlas-dir
\addindex __configure__--with-atlas-dir
Search for ATLAS under prefix, which should notably contain
include/cblas.h.
- --with-mkl-cflags=cflags
-
\anchor with-mkl-cflags
\addindex __configure__--with-mkl-cflags
Use cflags to compile code that uses the MKL library.
- --with-mkl-ldflags=ldflags
-
\anchor with-mkl-ldflags
\addindex __configure__--with-mkl-ldflags
Use ldflags when linking code that uses the MKL library. Note
that the MKL website
(http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/)
provides a script to determine the linking flags.
- --disable-build-examples
-
\anchor disable-build-examples
\addindex __configure__--disable-build-examples
Disable the build of examples.
- --enable-sc-hypervisor
-
\anchor enable-sc-hypervisor
\addindex __configure__--enable-sc-hypervisor
Enable the Scheduling Context Hypervisor plugin(\ref SchedulingContextHypervisor).
By default, it is disabled.
- --enable-memory-stats
-
\anchor enable-memory-stats
\addindex __configure__--enable-memory-stats
Enable memory statistics (\ref MemoryFeedback).
- --enable-simgrid
-
\anchor enable-simgrid
\addindex __configure__--enable-simgrid
Enable simulation of execution in simgrid, to allow easy experimentation with
various numbers of cores and GPUs, or amount of memory, etc. Experimental.
The path to simgrid can be specified through the SIMGRID_CFLAGS and
SIMGRID_LIBS environment variables, for instance:
\verbatim
export SIMGRID_CFLAGS="-I/usr/local/simgrid/include"
export SIMGRID_LIBS="-L/usr/local/simgrid/lib -lsimgrid"
\endverbatim
*/