/* * 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
*/