| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748 | /* StarPU --- Runtime system for heterogeneous multicore architectures. * * Copyright (C) 2011-2013,2015-2017                      Inria * Copyright (C) 2010-2017, 2019                          CNRS * Copyright (C) 2009-2011,2013-2019                      Université de Bordeaux * * StarPU is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or (at * your option) any later version. * * StarPU is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * See the GNU Lesser General Public License in COPYING.LGPL for more details. *//*! \page CompilationConfiguration Compilation ConfigurationThe behavior of the StarPU library and tools may be tuned thanks tothe following configure options.\section CommonConfiguration Common Configuration<dl><dt>--enable-debug</dt><dd>\anchor enable-debug\addindex __configure__--enable-debugEnable debugging messages.</dd><dt>--enable-spinlock-check</dt><dd>\anchor enable-spinlock-check\addindex __configure__--enable-spinlock-checkEnable checking that spinlocks are taken and released properly.</dd><dt>--enable-fast</dt><dd>\anchor enable-fast\addindex __configure__--enable-fastDisable assertion checks, which saves computation time.</dd><dt>--enable-verbose</dt><dd>\anchor enable-verbose\addindex __configure__--enable-verboseIncrease the verbosity of the debugging messages.  This can be disabledat runtime by setting the environment variable \ref STARPU_SILENT toany value. <c>--enable-verbose=extra</c> increase even more the verbosity.\verbatim$ STARPU_SILENT=1 ./vector_scal\endverbatim</dd><dt>--enable-coverage</dt><dd>\anchor enable-coverage\addindex __configure__--enable-coverageEnable flags for the coverage tool <c>gcov</c>.</dd><dt>--enable-quick-check</dt><dd>\anchor enable-quick-check\addindex __configure__--enable-quick-checkSpecify tests and examples should be run on a smaller data set, i.eallowing a faster execution time</dd><dt>--enable-long-check</dt><dd>\anchor enable-long-check\addindex __configure__--enable-long-checkEnable some exhaustive checks which take a really long time.</dd><dt>--enable-new-check</dt><dd>\anchor enable-new-check\addindex __configure__--enable-new-checkEnable new testcases which are known to fail.</dd><dt>--with-hwloc</dt><dd>\anchor with-hwloc\addindex __configure__--with-hwlocSpecify <c>hwloc</c> should be used by StarPU. <c>hwloc</c> should be found by themeans of the tool <c>pkg-config</c>.</dd><dt>--with-hwloc=<c>prefix</c></dt><dd>\anchor with-hwloc\addindex __configure__--with-hwlocSpecify <c>hwloc</c> should be used by StarPU. <c>hwloc</c> should be found in thedirectory specified by <c>prefix</c></dd><dt>--without-hwloc</dt><dd>\anchor without-hwloc\addindex __configure__--without-hwlocSpecify <c>hwloc</c> should not be used by StarPU.</dd><dt>--disable-build-doc</dt><dd>\anchor disable-build-doc\addindex __configure__--disable-build-docDisable the creation of the documentation. This should be done on amachine which does not have the tools <c>doxygen</c> and <c>latex</c>(plus the packages <c>latex-xcolor</c> and <c>texlive-latex-extra</c>).</dd><dt>--disable-icc</dt><dd>\anchor disable-icc\addindex __configure__--disable-iccDisable the usage of the ICC compiler. When found, some specific ICCexamples are compiled.</dd></dl>Additionally, the script <c>configure</c> recognize many variables, whichcan be listed by typing <c>./configure --help</c>. For example,<c>./configure NVCCFLAGS="-arch sm_20"</c> adds a flag for the compilation ofCUDA kernels, and <c>NVCC_CC=gcc-5</c> allows to change the C++ compilerused by nvcc.\section ConfiguringWorkers Configuring Workers<dl><dt>--enable-blocking-drivers</dt><dd>\anchor enable-blocking-drivers\addindex __configure__--enable-blocking-driversBy default, StarPU keeps CPU workers awake permanently, for betterreactivity. This option makes StarPU put CPU workers to real sleep when thereare not enough tasks to compute.</dd><dt>--enable-worker-callbacks</dt><dd>\anchor enable-worker-callbacks\addindex __configure__--enable-worker-callbacksIf blocking drivers are enabled, enable callbacks to notify an external resource managerabout workers going to sleep and waking up.</dd><dt>--enable-maxcpus=<c>count</c></dt><dd>\anchor enable-maxcpus\addindex __configure__--enable-maxcpusUse at most <c>count</c> CPU cores.  This information is thenavailable as the macro ::STARPU_MAXCPUS.</dd><dt>--enable-maxnumanodes=<c>count</c></dt><dd>\anchor enable-maxnumanodes\addindex __configure__--enable-maxnumanodesUse at most <c>count</c> NUMA nodes.  This information is thenavailable as the macro ::STARPU_MAXNUMANODES.</dd><dt>--disable-cpu</dt><dd>\anchor disable-cpu\addindex __configure__--disable-cpuDisable the use of CPUs of the machine. Only GPUs etc. will be used.</dd><dt>--enable-maxcudadev=<c>count</c></dt><dd>\anchor enable-maxcudadev\addindex __configure__--enable-maxcudadevUse at most <c>count</c> CUDA devices.  This information is thenavailable as the macro ::STARPU_MAXCUDADEVS.</dd><dt>--disable-cuda</dt><dd>\anchor disable-cuda\addindex __configure__--disable-cudaDisable the use of CUDA, even if a valid CUDA installation was detected.</dd><dt>--with-cuda-dir=<c>prefix</c></dt><dd>\anchor with-cuda-dir\addindex __configure__--with-cuda-dirSearch for CUDA under <c>prefix</c>, which should notably contain the file<c>include/cuda.h</c>.</dd><dt>--with-cuda-include-dir=<c>dir</c></dt><dd>\anchor with-cuda-include-dir\addindex __configure__--with-cuda-include-dirSearch for CUDA headers under <c>dir</c>, which shouldnotably contain the file <c>cuda.h</c>. This defaults to<c>/include</c> appended to the value given to\ref with-cuda-dir "--with-cuda-dir".</dd><dt>--with-cuda-lib-dir=<c>dir</c></dt><dd>\anchor with-cuda-lib-dir\addindex __configure__--with-cuda-lib-dirSearch for CUDA libraries under <c>dir</c>, which should notably containthe CUDA shared libraries---e.g., <c>libcuda.so</c>.  This defaults to<c>/lib</c> appended to the value given to\ref with-cuda-dir "--with-cuda-dir".</dd><dt>--disable-cuda-memcpy-peer</dt><dd>\anchor disable-cuda-memcpy-peer\addindex __configure__--disable-cuda-memcpy-peerExplicitly disable peer transfers when using CUDA 4.0.</dd><dt>--enable-maxopencldev=<c>count</c></dt><dd>\anchor enable-maxopencldev\addindex __configure__--enable-maxopencldevUse at most <c>count</c> OpenCL devices.  This information is thenavailable as the macro ::STARPU_MAXOPENCLDEVS.</dd><dt>--disable-opencl</dt><dd>\anchor disable-opencl\addindex __configure__--disable-openclDisable the use of OpenCL, even if the SDK is detected.</dd><dt>--with-opencl-dir=<c>prefix</c></dt><dd>\anchor with-opencl-dir\addindex __configure__--with-opencl-dirSearch for an OpenCL implementation under <c>prefix</c>, which shouldnotably contain <c>include/CL/cl.h</c> (or <c>include/OpenCL/cl.h</c>on Mac OS).</dd><dt>--with-opencl-include-dir=<c>dir</c></dt><dd>\anchor with-opencl-include-dir\addindex __configure__--with-opencl-include-dirSearch for OpenCL headers under <c>dir</c>, which should notably contain<c>CL/cl.h</c> (or <c>OpenCL/cl.h</c> on Mac OS).  This defaults to<c>/include</c> appended to the value given to\ref with-opencl-dir "--with-opencl-dir".</dd><dt>--with-opencl-lib-dir=<c>dir</c></dt><dd>\anchor with-opencl-lib-dir\addindex __configure__--with-opencl-lib-dirSearch for an OpenCL library under <c>dir</c>, which should notablycontain the OpenCL shared libraries---e.g. <c>libOpenCL.so</c>. This defaults to<c>/lib</c> appended to the value given to\ref with-opencl-dir "--with-opencl-dir".</dd><dt>--enable-opencl-simulator</dt><dd>\anchor enable-opencl-simulator\addindex __configure__--enable-opencl-simulatorEnable considering the provided OpenCL implementation as a simulator, i.e. usethe kernel duration returned by OpenCL profiling information as wallclock timeinstead of the actual measured real time. This requires the SimGrid support.</dd><dt>--enable-maximplementations=<c>count</c></dt><dd>\anchor enable-maximplementations\addindex __configure__--enable-maximplementationsAllow for at most <c>count</c> codelet implementations for the sametarget device.  This information is then available as themacro ::STARPU_MAXIMPLEMENTATIONS macro.</dd><dt>--enable-max-sched-ctxs=<c>count</c></dt><dd>\anchor enable-max-sched-ctxs\addindex __configure__--enable-max-sched-ctxsAllow for at most <c>count</c> scheduling contextsThis information is then available as the macro::STARPU_NMAX_SCHED_CTXS.</dd><dt>--disable-asynchronous-copy</dt><dd>\anchor disable-asynchronous-copy\addindex __configure__--disable-asynchronous-copyDisable asynchronous copies between CPU and GPU devices.The AMD implementation of OpenCL is known tofail when copying data asynchronously. When using this implementation,it is therefore necessary to disable asynchronous data transfers.</dd><dt>--disable-asynchronous-cuda-copy</dt><dd>\anchor disable-asynchronous-cuda-copy\addindex __configure__--disable-asynchronous-cuda-copyDisable asynchronous copies between CPU and CUDA devices.</dd><dt>--disable-asynchronous-opencl-copy</dt><dd>\anchor disable-asynchronous-opencl-copy\addindex __configure__--disable-asynchronous-opencl-copyDisable asynchronous copies between CPU and OpenCL devices.The AMD implementation of OpenCL is known tofail when copying data asynchronously. When using this implementation,it is therefore necessary to disable asynchronous data transfers.</dd><dt>--enable-maxmicthreads</dt><dd>\anchor enable-maxmicthreads\addindex __configure__--enable-maxmicthreadsSpecify the maximum number of MIC threads</dd><dt>--disable-asynchronous-mic-copy</dt><dd>\anchor disable-asynchronous-mic-copy\addindex __configure__--disable-asynchronous-mic-copyDisable asynchronous copies between CPU and MIC devices.</dd><dt>--disable-asynchronous-mpi-master-slave-copy</dt><dd>\anchor disable-asynchronous-mpi-master-slave-copy\addindex __configure__--disable-asynchronous-mpi-master-slave-copyDisable asynchronous copies between CPU and MPI Slave devices.</dd><dt>--enable-maxnodes=<c>count</c></dt><dd>\anchor enable-maxnodes\addindex __configure__--enable-maxnodesUse at most <c>count</c> memory nodes.  This information is then available asthe macro ::STARPU_MAXNODES. Reducing it allows to considerably reduce memoryused by StarPU data structures.</dd></dl>\section ExtensionConfiguration Extension Configuration<dl><dt>--disable-mpi</dt><dd>\anchor disable-mpi\addindex __configure__--disable-mpiDisable the build of libstarpumpi. By default, it is enabled when MPI is found.</dd><dt>--with-mpicc=<c>path</c></dt><dd>\anchor with-mpicc\addindex __configure__--with-mpiccUse the compiler <c>mpicc</c> at <c>path</c>, for StarPU-MPI.(\ref MPISupport).</dd><dt>--enable-mpi-pedantic-isend</dt><dd>\anchor enable-mpi-pedantic-isend\addindex __configure__--enable-mpi-pedantic-isendBefore performing any MPI communication, StarPU-MPI waits for the datato be available in the main memory of the node submitting the request.For send communications, data is acquired with the mode ::STARPU_R.When enabling the pedantic mode, data are instead acquired with the::STARPU_RW which thus ensures that there is not more than 1concurrent MPI_Isend calls accessing the dataand StarPU does not read from it from tasks during the communication.</dd><dt>--enable-mpi-master-slave</dt><dd>\anchor enable-mpi-master-slave\addindex __configure__--enable-mpi-master-slaveEnable the MPI Master-Slave support. By default, it is disabled.</dd><dt>--with-mpi-master-slave-multiple-thread</dt><dd>\anchor with-mpi-master-slave-multiple-thread\addindex __configure__--with-mpi-master-slave-multiple-threadCreate one thread per MPI Slave on the MPI master to manage communications.</dd><dt>--enable-mpi-verbose</dt><dd>\anchor enable-mpi-verbose\addindex __configure__--enable-mpi-verboseIncrease the verbosity of the MPI debugging messages.  This can be disabledat runtime by setting the environment variable \ref STARPU_SILENT toany value. <c>--enable-mpi-verbose=extra</c> increase even more the verbosity.\verbatim$ STARPU_SILENT=1 mpirun -np 2 ./insert_task\endverbatim</dd><dt>--enable-nmad</dt><dd>\anchor enable-nmad\addindex __configure__--enable-nmadEnable the NewMadeleine implementation for StarPU-MPI.</dd><dt>--disable-fortran</dt><dd>\anchor disable-fortran\addindex __configure__--disable-fortranDisable the fortran extension. By default, it is enabled when afortran compiler is found.</dd><dt>--disable-socl</dt><dd>\anchor disable-socl\addindex __configure__--disable-soclDisable the SOCL extension (\ref SOCLOpenclExtensions).  Bydefault, it is enabled when an OpenCL implementation is found.</dd><dt>--with-coi-dir</dt><dd>\anchor with-coi-dir\addindex __configure__--with-coi-dirSpecify the directory to the COI library for MIC support.The default value is <c>/opt/intel/mic/coi</c></dd><dt>--mic-host</dt><dd>\anchor mic-host\addindex __configure__--mic-hostSpecify the precise MIC architecture host identifier.The default value is <c>x86_64-k1om-linux</c></dd><dt>--enable-openmp</dt><dd>\anchor enable-openmp\addindex __configure__--enable-openmpEnable OpenMP Support (\ref OpenMPRuntimeSupport)</dd><dt>--enable-cluster</dt><dd>\anchor enable-cluster\addindex __configure__--enable-clusterEnable cluster Support (\ref ClusteringAMachine)</dd></dl>\section AdvancedConfiguration Advanced Configuration<dl><dt>--enable-perf-debug</dt><dd>\anchor enable-perf-debug\addindex __configure__--enable-perf-debugEnable performance debugging through gprof.</dd><dt>--enable-model-debug</dt><dd>\anchor enable-model-debug\addindex __configure__--enable-model-debugEnable performance model debugging.</dd><dt>--enable-fxt-lock</dt><dd>\anchor enable-fxt-lock\addindex __configure__--enable-fxt-lockEnable additional trace events which describes locks behaviour. This is howeverextremely heavy and should only be enabled when debugging insides of StarPU.</dd><dt>--enable-maxbuffers</dt><dd>\anchor enable-maxbuffers\addindex __configure__--enable-maxbuffersDefine the maximum number of buffers that tasks will be able to takeas parameters, then available as the macro ::STARPU_NMAXBUFS.</dd><dt>--enable-allocation-cache</dt><dd>\anchor enable-allocation-cache\addindex __configure__--enable-allocation-cacheEnable the use of a data allocation cache to avoid the cost of it withCUDA. Still experimental.</dd><dt>--enable-opengl-render</dt><dd>\anchor enable-opengl-render\addindex __configure__--enable-opengl-renderEnable the use of OpenGL for the rendering of some examples.// TODO: rather default to enabled when detected</dd><dt>--enable-blas-lib=<c>prefix</c></dt><dd>\anchor enable-blas-lib\addindex __configure__--enable-blas-libSpecify the blas library to be used by some of the examples. Librairies available :- none [default] : no BLAS library is used- atlas: use ATLAS library- goto: use GotoBLAS library- openblas: use OpenBLAS library- mkl: use MKL library (you may need to set specific CFLAGS and LDFLAGS with --with-mkl-cflags and --with-mkl-ldflags)</dd><dt>--enable-leveldb</dt><dd>\anchor enable-leveldb\addindex __configure__--enable-leveldbEnable linking with LevelDB if available</dd><dt>--disable-hdf5</dt><dd>\anchor disable-hdf5\addindex __configure__--disable-hdf5Disable building HDF5 support.</dd><dt>--with-hdf5-include-dir=<c>path</c></dt><dd>\anchor with-hdf5-include-dir\addindex __configure__--with-hdf5-include-dirSpecify the directory where is stored the header hdf5.h.</dd><dt>--with-hdf5-lib-dir=<c>path</c></dt><dd>\anchor with-hdf5-lib-dir\addindex __configure__--with-hdf5-lib-dirSpecify the directory where is stored the hdf5 library.</dd><dt>--disable-starpufft</dt><dd>\anchor disable-starpufft\addindex __configure__--disable-starpufftDisable the build of libstarpufft, even if <c>fftw</c> or <c>cuFFT</c> is available.</dd><dt>--enable-starpufft-examples</dt><dd>\anchor enable-starpufft-examples\addindex __configure__--enable-starpufft-examplesEnable the compilation and the execution of the libstarpufft examples.By default, they are neither compiled nor checked.</dd><dt>--with-fxt=<c>prefix</c></dt><dd>\anchor with-fxt\addindex __configure__--with-fxtSearch for FxT under <c>prefix</c>.FxT (http://savannah.nongnu.org/projects/fkt) is used to generatetraces of scheduling events, which can then be rendered them using ViTE(\ref Off-linePerformanceFeedback).  <c>prefix</c> shouldnotably contain <c>include/fxt/fxt.h</c>.</dd><dt>--with-perf-model-dir=<c>dir</c></dt><dd>\anchor with-perf-model-dir\addindex __configure__--with-perf-model-dirStore performance models under <c>dir</c>, instead of the current user'shome.</dd><dt>--with-goto-dir=<c>prefix</c></dt><dd>\anchor with-goto-dir\addindex __configure__--with-goto-dirSearch for GotoBLAS under <c>prefix</c>, which should notably contain<c>libgoto.so</c> or <c>libgoto2.so</c>.</dd><dt>--with-atlas-dir=<c>prefix</c></dt><dd>\anchor with-atlas-dir\addindex __configure__--with-atlas-dirSearch for ATLAS under <c>prefix</c>, which should notably contain<c>include/cblas.h</c>.</dd><dt>--with-mkl-cflags=<c>cflags</c></dt><dd>\anchor with-mkl-cflags\addindex __configure__--with-mkl-cflagsUse <c>cflags</c> to compile code that uses the MKL library.</dd><dt>--with-mkl-ldflags=<c>ldflags</c></dt><dd>\anchor with-mkl-ldflags\addindex __configure__--with-mkl-ldflagsUse <c>ldflags</c> when linking code that uses the MKL library.  Notethat the MKL website(http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/)provides a script to determine the linking flags.</dd><dt>--disable-glpk</dt><dd>\anchor disable-glpk\addindex __configure__--disable-glpkDisable the use of libglpk for computing area bounds.</dd><dt>--disable-build-tests</dt><dd>\anchor disable-build-tests\addindex __configure__--disable-build-testsDisable the build of tests.</dd><dt>--disable-build-examples</dt><dd>\anchor disable-build-examples\addindex __configure__--disable-build-examplesDisable the build of examples.</dd><dt>--disable-build-tests</dt><dd>\anchor disable-build-tests\addindex __configure__--disable-build-testsDisable the build of tests.</dd><dt>--enable-sc-hypervisor</dt><dd>\anchor enable-sc-hypervisor\addindex __configure__--enable-sc-hypervisorEnable the Scheduling Context Hypervisor plugin (\ref SchedulingContextHypervisor).By default, it is disabled.</dd><dt>--enable-memory-stats</dt><dd>\anchor enable-memory-stats\addindex __configure__--enable-memory-statsEnable memory statistics (\ref MemoryFeedback).</dd><dt>--enable-simgrid</dt><dd>\anchor enable-simgrid\addindex __configure__--enable-simgridEnable simulation of execution in SimGrid, to allow easy experimentation withvarious numbers of cores and GPUs, or amount of memory, etc. Experimental.The path to SimGrid can be specified through the <c>SIMGRID_CFLAGS</c> and<c>SIMGRID_LIBS</c> environment variables, for instance:\verbatimexport SIMGRID_CFLAGS="-I/usr/local/simgrid/include"export SIMGRID_LIBS="-L/usr/local/simgrid/lib -lsimgrid"\endverbatim</dd><dt>--with-simgrid-dir</dt><dd>\anchor with-simgrid-dir\addindex __configure__--with-simgrid-dirSimilar to the option \ref enable-simgrid "--enable-simgrid" but alsoallows to specify the location to the SimGrid library.</dd><dt>--with-simgrid-include-dir</dt><dd>\anchor with-simgrid-include-dir\addindex __configure__--with-simgrid-include-dirSimilar to the option \ref enable-simgrid "--enable-simgrid" but alsoallows to specify the location to the SimGrid include directory.</dd><dt>--with-simgrid-lib-dir</dt><dd>\anchor with-simgrid-lib-dir\addindex __configure__--with-simgrid-lib-dirSimilar to the option \ref enable-simgrid "--enable-simgrid" but alsoallows to specify the location to the SimGrid lib directory.</dd><dt>--with-smpirun=<c>path</c></dt><dd>\anchor with-smpirun\addindex __configure__--with-smpirunUse the smpirun at <c>path</c></dd><dt>--enable-simgrid-mc</dt><dd>\anchor enable-simgrid-mc\addindex __configure__--enable-simgrid-mcEnable the Model Checker in simulation of execution in SimGrid, to allowexploring various execution paths.</dd><dt>--enable-calibration-heuristic</dt><dd>\anchor enable-calibration-heuristic\addindex __configure__--enable-calibration-heuristicAllows to set the maximum authorized percentage of deviationfor the history-based calibrator of StarPU. A correct valueof this parameter must be in [0..100]. The default value ofthis parameter is 10. Experimental.</dd></dl>*/
 |