41configure_options.doxy 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596
  1. /*
  2. * This file is part of the StarPU Handbook.
  3. * Copyright (C) 2009--2011 Universit@'e de Bordeaux
  4. * Copyright (C) 2010, 2011, 2012, 2013, 2014 Centre National de la Recherche Scientifique
  5. * Copyright (C) 2011, 2012 Institut National de Recherche en Informatique et Automatique
  6. * See the file version.doxy for copying conditions.
  7. */
  8. /*! \page CompilationConfiguration Compilation Configuration
  9. The behavior of the StarPU library and tools may be tuned thanks to
  10. the following configure options.
  11. \section CommonConfiguration Common Configuration
  12. <dl>
  13. <dt>--enable-debug</dt>
  14. <dd>
  15. \anchor enable-debug
  16. \addindex __configure__--enable-debug
  17. Enable debugging messages.
  18. </dd>
  19. <dt>--enable-spinlock-check</dt>
  20. <dd>
  21. \anchor enable-spinlock-check
  22. \addindex __configure__--enable-spinlock-check
  23. Enable checking that spinlocks are taken and released properly.
  24. </dd>
  25. <dt>--enable-fast</dt>
  26. <dd>
  27. \anchor enable-fast
  28. \addindex __configure__--enable-fast
  29. Disable assertion checks, which saves computation time.
  30. </dd>
  31. <dt>--enable-verbose</dt>
  32. <dd>
  33. \anchor enable-verbose
  34. \addindex __configure__--enable-verbose
  35. Increase the verbosity of the debugging messages. This can be disabled
  36. at runtime by setting the environment variable \ref STARPU_SILENT to
  37. any value. <c>--enable-verbose=extra</c> increase even more the verbosity.
  38. \verbatim
  39. $ STARPU_SILENT=1 ./vector_scal
  40. \endverbatim
  41. </dd>
  42. <dt>--enable-coverage</dt>
  43. <dd>
  44. \anchor enable-coverage
  45. \addindex __configure__--enable-coverage
  46. Enable flags for the coverage tool <c>gcov</c>.
  47. </dd>
  48. <dt>--enable-quick-check</dt>
  49. <dd>
  50. \anchor enable-quick-check
  51. \addindex __configure__--enable-quick-check
  52. Specify tests and examples should be run on a smaller data set, i.e
  53. allowing a faster execution time
  54. </dd>
  55. <dt>--enable-long-check</dt>
  56. <dd>
  57. \anchor enable-long-check
  58. \addindex __configure__--enable-long-check
  59. Enable some exhaustive checks which take a really long time.
  60. </dd>
  61. <dt>--enable-new-check</dt>
  62. <dd>
  63. \anchor enable-new-check
  64. \addindex __configure__--enable-new-check
  65. Enable new testcases which are known to fail.
  66. </dd>
  67. <dt>--with-hwloc</dt>
  68. <dd>
  69. \anchor with-hwloc
  70. \addindex __configure__--with-hwloc
  71. Specify <c>hwloc</c> should be used by StarPU. <c>hwloc</c> should be found by the
  72. means of the tool <c>pkg-config</c>.
  73. </dd>
  74. <dt>--with-hwloc=<c>prefix</c></dt>
  75. <dd>
  76. \anchor with-hwloc
  77. \addindex __configure__--with-hwloc
  78. Specify <c>hwloc</c> should be used by StarPU. <c>hwloc</c> should be found in the
  79. directory specified by <c>prefix</c>
  80. </dd>
  81. <dt>--without-hwloc</dt>
  82. <dd>
  83. \anchor without-hwloc
  84. \addindex __configure__--without-hwloc
  85. Specify <c>hwloc</c> should not be used by StarPU.
  86. </dd>
  87. <dt>--disable-build-doc</dt>
  88. <dd>
  89. \anchor disable-build-doc
  90. \addindex __configure__--disable-build-doc
  91. Disable the creation of the documentation. This should be done on a
  92. machine which does not have the tools <c>doxygen</c> and <c>latex</c>
  93. (plus the packages <c>latex-xcolor</c> and <c>texlive-latex-extra</c>).
  94. </dd>
  95. </dl>
  96. Additionally, the script <c>configure</c> recognize many variables, which
  97. can be listed by typing <c>./configure --help</c>. For example,
  98. <c>./configure NVCCFLAGS="-arch sm_13"</c> adds a flag for the compilation of
  99. CUDA kernels.
  100. \section ConfiguringWorkers Configuring Workers
  101. <dl>
  102. <dt>--enable-maxcpus=<c>count</c></dt>
  103. <dd>
  104. \anchor enable-maxcpus
  105. \addindex __configure__--enable-maxcpus
  106. Use at most <c>count</c> CPU cores. This information is then
  107. available as the macro ::STARPU_MAXCPUS.
  108. </dd>
  109. <dt>--disable-cpu</dt>
  110. <dd>
  111. \anchor disable-cpu
  112. \addindex __configure__--disable-cpu
  113. Disable the use of CPUs of the machine. Only GPUs etc. will be used.
  114. </dd>
  115. <dt>--enable-maxcudadev=<c>count</c></dt>
  116. <dd>
  117. \anchor enable-maxcudadev
  118. \addindex __configure__--enable-maxcudadev
  119. Use at most <c>count</c> CUDA devices. This information is then
  120. available as the macro ::STARPU_MAXCUDADEVS.
  121. </dd>
  122. <dt>--disable-cuda</dt>
  123. <dd>
  124. \anchor disable-cuda
  125. \addindex __configure__--disable-cuda
  126. Disable the use of CUDA, even if a valid CUDA installation was detected.
  127. </dd>
  128. <dt>--with-cuda-dir=<c>prefix</c></dt>
  129. <dd>
  130. \anchor with-cuda-dir
  131. \addindex __configure__--with-cuda-dir
  132. Search for CUDA under <c>prefix</c>, which should notably contain the file
  133. <c>include/cuda.h</c>.
  134. </dd>
  135. <dt>--with-cuda-include-dir=<c>dir</c></dt>
  136. <dd>
  137. \anchor with-cuda-include-dir
  138. \addindex __configure__--with-cuda-include-dir
  139. Search for CUDA headers under <c>dir</c>, which should
  140. notably contain the file <c>cuda.h</c>. This defaults to
  141. <c>/include</c> appended to the value given to
  142. \ref with-cuda-dir "--with-cuda-dir".
  143. </dd>
  144. <dt>--with-cuda-lib-dir=<c>dir</c></dt>
  145. <dd>
  146. \anchor with-cuda-lib-dir
  147. \addindex __configure__--with-cuda-lib-dir
  148. Search for CUDA libraries under <c>dir</c>, which should notably contain
  149. the CUDA shared libraries---e.g., <c>libcuda.so</c>. This defaults to
  150. <c>/lib</c> appended to the value given to
  151. \ref with-cuda-dir "--with-cuda-dir".
  152. </dd>
  153. <dt>--disable-cuda-memcpy-peer</dt>
  154. <dd>
  155. \anchor disable-cuda-memcpy-peer
  156. \addindex __configure__--disable-cuda-memcpy-peer
  157. Explicitly disable peer transfers when using CUDA 4.0.
  158. </dd>
  159. <dt>--enable-maxopencldev=<c>count</c></dt>
  160. <dd>
  161. \anchor enable-maxopencldev
  162. \addindex __configure__--enable-maxopencldev
  163. Use at most <c>count</c> OpenCL devices. This information is then
  164. available as the macro ::STARPU_MAXOPENCLDEVS.
  165. </dd>
  166. <dt>--disable-opencl</dt>
  167. <dd>
  168. \anchor disable-opencl
  169. \addindex __configure__--disable-opencl
  170. Disable the use of OpenCL, even if the SDK is detected.
  171. </dd>
  172. <dt>--with-opencl-dir=<c>prefix</c></dt>
  173. <dd>
  174. \anchor with-opencl-dir
  175. \addindex __configure__--with-opencl-dir
  176. Search for an OpenCL implementation under <c>prefix</c>, which should
  177. notably contain <c>include/CL/cl.h</c> (or <c>include/OpenCL/cl.h</c>
  178. on Mac OS).
  179. </dd>
  180. <dt>--with-opencl-include-dir=<c>dir</c></dt>
  181. <dd>
  182. \anchor with-opencl-include-dir
  183. \addindex __configure__--with-opencl-include-dir
  184. Search for OpenCL headers under <c>dir</c>, which should notably contain
  185. <c>CL/cl.h</c> (or <c>OpenCL/cl.h</c> on Mac OS). This defaults to
  186. <c>/include</c> appended to the value given to
  187. \ref with-opencl-dir "--with-opencl-dir".
  188. </dd>
  189. <dt>--with-opencl-lib-dir=<c>dir</c></dt>
  190. <dd>
  191. \anchor with-opencl-lib-dir
  192. \addindex __configure__--with-opencl-lib-dir
  193. Search for an OpenCL library under <c>dir</c>, which should notably
  194. contain the OpenCL shared libraries---e.g. <c>libOpenCL.so</c>. This defaults to
  195. <c>/lib</c> appended to the value given to
  196. \ref with-opencl-dir "--with-opencl-dir".
  197. </dd>
  198. <dt>--enable-opencl-simulator</dt>
  199. <dd>
  200. \anchor enable-opencl-simulator
  201. \addindex __configure__--enable-opencl-simulator
  202. Enable considering the provided OpenCL implementation as a simulator, i.e. use
  203. the kernel duration returned by OpenCL profiling information as wallclock time
  204. instead of the actual measured real time. This requires simgrid support.
  205. </dd>
  206. <dt>--enable-maximplementations=<c>count</c></dt>
  207. <dd>
  208. \anchor enable-maximplementations
  209. \addindex __configure__--enable-maximplementations
  210. Allow for at most <c>count</c> codelet implementations for the same
  211. target device. This information is then available as the
  212. macro ::STARPU_MAXIMPLEMENTATIONS macro.
  213. </dd>
  214. <dt>--enable-max-sched-ctxs=<c>count</c></dt>
  215. <dd>
  216. \anchor enable-max-sched-ctxs
  217. \addindex __configure__--enable-max-sched-ctxs
  218. Allow for at most <c>count</c> scheduling contexts
  219. This information is then available as the macro
  220. ::STARPU_NMAX_SCHED_CTXS.
  221. </dd>
  222. <dt>--disable-asynchronous-copy</dt>
  223. <dd>
  224. \anchor disable-asynchronous-copy
  225. \addindex __configure__--disable-asynchronous-copy
  226. Disable asynchronous copies between CPU and GPU devices.
  227. The AMD implementation of OpenCL is known to
  228. fail when copying data asynchronously. When using this implementation,
  229. it is therefore necessary to disable asynchronous data transfers.
  230. </dd>
  231. <dt>--disable-asynchronous-cuda-copy</dt>
  232. <dd>
  233. \anchor disable-asynchronous-cuda-copy
  234. \addindex __configure__--disable-asynchronous-cuda-copy
  235. Disable asynchronous copies between CPU and CUDA devices.
  236. </dd>
  237. <dt>--disable-asynchronous-opencl-copy</dt>
  238. <dd>
  239. \anchor disable-asynchronous-opencl-copy
  240. \addindex __configure__--disable-asynchronous-opencl-copy
  241. Disable asynchronous copies between CPU and OpenCL devices.
  242. The AMD implementation of OpenCL is known to
  243. fail when copying data asynchronously. When using this implementation,
  244. it is therefore necessary to disable asynchronous data transfers.
  245. </dd>
  246. <dt>--enable-maxmicthreads</dt>
  247. <dd>
  248. \anchor enable-maxmicthreads
  249. \addindex __configure__--enable-maxmicthreads
  250. Specify the maximum number of MIC threads
  251. </dd>
  252. <dt>--disable-asynchronous-mic-copy</dt>
  253. <dd>
  254. \anchor disable-asynchronous-mic-copy
  255. \addindex __configure__--disable-asynchronous-mic-copy
  256. Disable asynchronous copies between CPU and MIC devices.
  257. </dd>
  258. </dl>
  259. \section ExtensionConfiguration Extension Configuration
  260. <dl>
  261. <dt>--disable-socl</dt>
  262. <dd>
  263. \anchor disable-socl
  264. \addindex __configure__--disable-socl
  265. Disable the SOCL extension (\ref SOCLOpenclExtensions). By
  266. default, it is enabled when an OpenCL implementation is found.
  267. </dd>
  268. <dt>--disable-starpu-top</dt>
  269. <dd>
  270. \anchor disable-starpu-top
  271. \addindex __configure__--disable-starpu-top
  272. Disable the StarPU-Top interface (\ref StarPU-TopInterface). By default, it
  273. is enabled when the required dependencies are found.
  274. </dd>
  275. <dt>--disable-gcc-extensions</dt>
  276. <dd>
  277. \anchor disable-gcc-extensions
  278. \addindex __configure__--disable-gcc-extensions
  279. Disable the GCC plug-in (\ref cExtensions). By default, it is
  280. enabled when the GCC compiler provides a plug-in support.
  281. </dd>
  282. <dt>--with-mpicc=<c>path</c></dt>
  283. <dd>
  284. \anchor with-mpicc
  285. \addindex __configure__--with-mpicc
  286. Use the compiler <c>mpicc</c> at <c>path</c>, for StarPU-MPI.
  287. (\ref MPISupport).
  288. </dd>
  289. <dt>--enable-mpi-progression-hook</dt>
  290. <dd>
  291. \anchor enable-mpi-progression-hook
  292. \addindex __configure__--enable-mpi-progression-hook
  293. Enable the activity polling method for StarPU-MPI.
  294. </dd>
  295. <dt>--with-coi-dir</dt>
  296. <dd>
  297. \anchor with-coi-dir
  298. \addindex __configure__--with-coi-dir
  299. Specify the directory to the COI library for MIC support.
  300. The default value is <c>/opt/intel/mic/coi</c>
  301. </dd>
  302. <dt>--mic-host</dt>
  303. <dd>
  304. \anchor mic-host
  305. \addindex __configure__--mic-host
  306. Specify the precise MIC architecture host identifier.
  307. The default value is <c>x86_64-k1om-linux</c>
  308. </dd>
  309. <dt>--enable-openmp</dt>
  310. <dd>
  311. \anchor enable-openmp
  312. \addindex __configure__--enable-openmp
  313. Enable OpenMP Support (\ref OpenMPRuntimeSupport)
  314. </dd>
  315. </dl>
  316. \section AdvancedConfiguration Advanced Configuration
  317. <dl>
  318. <dt>--enable-perf-debug</dt>
  319. <dd>
  320. \anchor enable-perf-debug
  321. \addindex __configure__--enable-perf-debug
  322. Enable performance debugging through gprof.
  323. </dd>
  324. <dt>--enable-model-debug</dt>
  325. <dd>
  326. \anchor enable-model-debug
  327. \addindex __configure__--enable-model-debug
  328. Enable performance model debugging.
  329. </dd>
  330. <dt>--enable-paje-codelet-details</dt>
  331. <dd>
  332. \anchor enable-paje-codelet-details
  333. \addindex __configure__--enable-paje-codelet-details
  334. Enable details about codelets in the paje trace. This requires a recent enough
  335. version of ViTE (at least r1430).
  336. </dd>
  337. <dt>--enable-fxt-lock</dt>
  338. <dd>
  339. \anchor enable-fxt-lock
  340. \addindex __configure__--enable-fxt-lock
  341. Enable additional trace events which describes locks behaviour.
  342. </dd>
  343. <dt>--enable-stats</dt>
  344. <dd>
  345. \anchor enable-stats
  346. \addindex __configure__--enable-stats
  347. (see ../../src/datawizard/datastats.c)
  348. Enable gathering of various data statistics (\ref DataStatistics).
  349. </dd>
  350. <dt>--enable-maxbuffers</dt>
  351. <dd>
  352. \anchor enable-maxbuffers
  353. \addindex __configure__--enable-maxbuffers
  354. Define the maximum number of buffers that tasks will be able to take
  355. as parameters, then available as the macro ::STARPU_NMAXBUFS.
  356. </dd>
  357. <dt>--enable-allocation-cache</dt>
  358. <dd>
  359. \anchor enable-allocation-cache
  360. \addindex __configure__--enable-allocation-cache
  361. Enable the use of a data allocation cache to avoid the cost of it with
  362. CUDA. Still experimental.
  363. </dd>
  364. <dt>--enable-opengl-render</dt>
  365. <dd>
  366. \anchor enable-opengl-render
  367. \addindex __configure__--enable-opengl-render
  368. Enable the use of OpenGL for the rendering of some examples.
  369. // TODO: rather default to enabled when detected
  370. </dd>
  371. <dt>--enable-blas-lib</dt>
  372. <dd>
  373. \anchor enable-blas-lib
  374. \addindex __configure__--enable-blas-lib
  375. Specify the blas library to be used by some of the examples. The
  376. library has to be 'atlas' or 'goto'.
  377. </dd>
  378. <dt>--disable-starpufft</dt>
  379. <dd>
  380. \anchor disable-starpufft
  381. \addindex __configure__--disable-starpufft
  382. Disable the build of libstarpufft, even if <c>fftw</c> or <c>cuFFT</c> is available.
  383. </dd>
  384. <dt>--enable-starpufft-examples</dt>
  385. <dd>
  386. \anchor enable-starpufft-examples
  387. \addindex __configure__--enable-starpufft-examples
  388. Enable the compilation and the execution of the libstarpufft examples.
  389. By default, they are neither compiled nor checked.
  390. </dd>
  391. <dt>--with-magma=<c>prefix</c></dt>
  392. <dd>
  393. \anchor with-magma
  394. \addindex __configure__--with-magma
  395. Search for MAGMA under <c>prefix</c>. <c>prefix</c> should notably
  396. contain <c>include/magmablas.h</c>.
  397. </dd>
  398. <dt>--with-fxt=<c>prefix</c></dt>
  399. <dd>
  400. \anchor with-fxt
  401. \addindex __configure__--with-fxt
  402. Search for FxT under <c>prefix</c>.
  403. FxT (http://savannah.nongnu.org/projects/fkt) is used to generate
  404. traces of scheduling events, which can then be rendered them using ViTE
  405. (\ref Off-linePerformanceFeedback). <c>prefix</c> should
  406. notably contain <c>include/fxt/fxt.h</c>.
  407. </dd>
  408. <dt>--with-perf-model-dir=<c>dir</c></dt>
  409. <dd>
  410. \anchor with-perf-model-dir
  411. \addindex __configure__--with-perf-model-dir
  412. Store performance models under <c>dir</c>, instead of the current user's
  413. home.
  414. </dd>
  415. <dt>--with-goto-dir=<c>prefix</c></dt>
  416. <dd>
  417. \anchor with-goto-dir
  418. \addindex __configure__--with-goto-dir
  419. Search for GotoBLAS under <c>prefix</c>, which should notably contain
  420. <c>libgoto.so</c> or <c>libgoto2.so</c>.
  421. </dd>
  422. <dt>--with-atlas-dir=<c>prefix</c></dt>
  423. <dd>
  424. \anchor with-atlas-dir
  425. \addindex __configure__--with-atlas-dir
  426. Search for ATLAS under <c>prefix</c>, which should notably contain
  427. <c>include/cblas.h</c>.
  428. </dd>
  429. <dt>--with-mkl-cflags=<c>cflags</c></dt>
  430. <dd>
  431. \anchor with-mkl-cflags
  432. \addindex __configure__--with-mkl-cflags
  433. Use <c>cflags</c> to compile code that uses the MKL library.
  434. </dd>
  435. <dt>--with-mkl-ldflags=<c>ldflags</c></dt>
  436. <dd>
  437. \anchor with-mkl-ldflags
  438. \addindex __configure__--with-mkl-ldflags
  439. Use <c>ldflags</c> when linking code that uses the MKL library. Note
  440. that the MKL website
  441. (http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/)
  442. provides a script to determine the linking flags.
  443. </dd>
  444. <dt>--disable-build-examples</dt>
  445. <dd>
  446. \anchor disable-build-examples
  447. \addindex __configure__--disable-build-examples
  448. Disable the build of examples.
  449. </dd>
  450. <dt>--enable-sc-hypervisor</dt>
  451. <dd>
  452. \anchor enable-sc-hypervisor
  453. \addindex __configure__--enable-sc-hypervisor
  454. Enable the Scheduling Context Hypervisor plugin(\ref SchedulingContextHypervisor).
  455. By default, it is disabled.
  456. </dd>
  457. <dt>--enable-memory-stats</dt>
  458. <dd>
  459. \anchor enable-memory-stats
  460. \addindex __configure__--enable-memory-stats
  461. Enable memory statistics (\ref MemoryFeedback).
  462. </dd>
  463. <dt>--enable-simgrid</dt>
  464. <dd>
  465. \anchor enable-simgrid
  466. \addindex __configure__--enable-simgrid
  467. Enable simulation of execution in simgrid, to allow easy experimentation with
  468. various numbers of cores and GPUs, or amount of memory, etc. Experimental.
  469. The path to simgrid can be specified through the <c>SIMGRID_CFLAGS</c> and
  470. <c>SIMGRID_LIBS</c> environment variables, for instance:
  471. \verbatim
  472. export SIMGRID_CFLAGS="-I/usr/local/simgrid/include"
  473. export SIMGRID_LIBS="-L/usr/local/simgrid/lib -lsimgrid"
  474. \endverbatim
  475. </dd>
  476. <dt>--with-simgrid-dir</dt>
  477. <dd>
  478. \anchor with-simgrid-dir
  479. \addindex __configure__--with-simgrid-dir
  480. Similar to the option \ref enable-simgrid "--enable-simgrid" but also
  481. allows to specify the location to the SimGrid library.
  482. </dd>
  483. <dt>--with-simgrid-include-dir</dt>
  484. <dd>
  485. \anchor with-simgrid-include-dir
  486. \addindex __configure__--with-simgrid-include-dir
  487. Similar to the option \ref enable-simgrid "--enable-simgrid" but also
  488. allows to specify the location to the SimGrid include directory.
  489. </dd>
  490. <dt>--with-simgrid-lib-dir</dt>
  491. <dd>
  492. \anchor with-simgrid-lib-dir
  493. \addindex __configure__--with-simgrid-lib-dir
  494. Similar to the option \ref enable-simgrid "--enable-simgrid" but also
  495. allows to specify the location to the SimGrid lib directory.
  496. </dd>
  497. <dt>--enable-calibration-heuristic</dt>
  498. <dd>
  499. \anchor enable-calibration-heuristic
  500. \addindex __configure__--enable-calibration-heuristic
  501. Allows to set the maximum authorized percentage of deviation
  502. for the history-based calibrator of StarPU. A correct value
  503. of this parameter must be in [0..100]. The default value of
  504. this parameter is 10. Experimental.
  505. </dd>
  506. </dl>
  507. */