starpu_config.h.in 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  1. /* StarPU --- Runtime system for heterogeneous multicore architectures.
  2. *
  3. * Copyright (C) 2009-2020 Université de Bordeaux, CNRS (LaBRI UMR 5800), Inria
  4. * Copyright (C) 2020 Federal University of Rio Grande do Sul (UFRGS)
  5. *
  6. * StarPU is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU Lesser General Public License as published by
  8. * the Free Software Foundation; either version 2.1 of the License, or (at
  9. * your option) any later version.
  10. *
  11. * StarPU is distributed in the hope that it will be useful, but
  12. * WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  14. *
  15. * See the GNU Lesser General Public License in COPYING.LGPL for more details.
  16. */
  17. /*
  18. * This is the public config.h file, installed along libstarpu.
  19. *
  20. * It should only contain the build-time #defines which have an effect on the
  21. * API & ABI.
  22. */
  23. #ifndef __STARPU_CONFIG_PUBLIC_H__
  24. #define __STARPU_CONFIG_PUBLIC_H__
  25. /**
  26. Define the major version of StarPU. This is the version used when
  27. compiling the application.
  28. @ingroup API_Versioning
  29. */
  30. #undef STARPU_MAJOR_VERSION
  31. /**
  32. @ingroup API_Versioning
  33. Define the minor version of StarPU. This is the version used when
  34. compiling the application.
  35. */
  36. #undef STARPU_MINOR_VERSION
  37. /**
  38. Define the release version of StarPU. This is the version used when
  39. compiling the application.
  40. @ingroup API_Versioning
  41. */
  42. #undef STARPU_RELEASE_VERSION
  43. #undef STARPU_USE_CPU
  44. /**
  45. Defined when StarPU has been installed with
  46. CUDA support. It should be used in your code to detect the
  47. availability of CUDA.
  48. @ingroup API_CUDA_Extensions
  49. */
  50. #undef STARPU_USE_CUDA
  51. /**
  52. Defined when StarPU has been installed with OpenCL support. It
  53. should be used in your code to detect the availability of OpenCL as
  54. shown in \ref FullSourceCodeVectorScal.
  55. @ingroup API_OpenCL_Extensions
  56. */
  57. #undef STARPU_USE_OPENCL
  58. /**
  59. Defined when StarPU has been installed with MIC support. It should
  60. be used in your code to detect the availability of MIC.
  61. @ingroup API_MIC_Extensions
  62. */
  63. #undef STARPU_USE_MIC
  64. /**
  65. Defined when StarPU has been installed with MPI Master Slave
  66. support. It should be used in your code to detect the availability
  67. of MPI Master Slave.
  68. @ingroup API_MPI_Support
  69. */
  70. #undef STARPU_USE_MPI_MASTER_SLAVE
  71. /**
  72. Defined when StarPU has been installed with FPGA support. It should
  73. be used in your code to detect the availability of FPGA.
  74. @ingroup API_FPGA_Extensions
  75. */
  76. #undef STARPU_USE_FPGA
  77. /**
  78. Defined when StarPU has been installed with OpenMP Runtime support.
  79. It should be used in your code to detect the availability of the
  80. runtime support for OpenMP.
  81. @ingroup API_OpenMP_Runtime_Support
  82. */
  83. #undef STARPU_OPENMP
  84. #undef STARPU_CLUSTER
  85. #undef STARPU_SIMGRID
  86. #undef STARPU_SIMGRID_MC
  87. #undef STARPU_SIMGRID_HAVE_XBT_BARRIER_INIT
  88. #undef STARPU_HAVE_SIMGRID_MSG_H
  89. #undef STARPU_HAVE_MSG_MSG_H
  90. #undef STARPU_HAVE_SIMGRID_ACTOR_H
  91. #undef STARPU_HAVE_SIMGRID_SEMAPHORE_H
  92. #undef STARPU_HAVE_SIMGRID_MUTEX_H
  93. #undef STARPU_HAVE_SIMGRID_COND_H
  94. #undef STARPU_HAVE_SIMGRID_BARRIER_H
  95. #undef STARPU_HAVE_XBT_SYNCHRO_H
  96. #undef STARPU_HAVE_VALGRIND_H
  97. #undef STARPU_HAVE_MEMCHECK_H
  98. #undef STARPU_VALGRIND_FULL
  99. #undef STARPU_SANITIZE_LEAK
  100. #undef STARPU_NON_BLOCKING_DRIVERS
  101. /* workers must call callbacks on sleep/wake-up */
  102. #undef STARPU_WORKER_CALLBACKS
  103. #undef STARPU_HAVE_ICC
  104. /**
  105. Defined when StarPU has been installed with MPI support. It should
  106. be used in your code to detect the availability of MPI.
  107. @ingroup API_MPI_Support
  108. */
  109. #undef STARPU_USE_MPI
  110. #undef STARPU_USE_MPI_MPI
  111. #undef STARPU_USE_MPI_NMAD
  112. #undef STARPU_ATLAS
  113. #undef STARPU_GOTO
  114. #undef STARPU_OPENBLAS
  115. #undef STARPU_MKL
  116. #undef STARPU_ARMPL
  117. #undef STARPU_SYSTEM_BLAS
  118. #undef STARPU_HAVE_CBLAS_H
  119. /**
  120. Define the directory in which the OpenCL codelets of the
  121. applications provided with StarPU have been installed.
  122. @ingroup API_OpenCL_Extensions
  123. */
  124. #undef STARPU_OPENCL_DATADIR
  125. #undef STARPU_HAVE_MAGMA
  126. #undef STARPU_OPENGL_RENDER
  127. #undef STARPU_USE_GTK
  128. #undef STARPU_HAVE_X11
  129. #undef STARPU_PAPI
  130. #undef STARPU_HAVE_POSIX_MEMALIGN
  131. #undef STARPU_HAVE_MEMALIGN
  132. #undef STARPU_HAVE_MALLOC_H
  133. #undef STARPU_HAVE_SYNC_BOOL_COMPARE_AND_SWAP
  134. #undef STARPU_HAVE_SYNC_VAL_COMPARE_AND_SWAP
  135. #undef STARPU_HAVE_SYNC_FETCH_AND_ADD
  136. #undef STARPU_HAVE_SYNC_FETCH_AND_OR
  137. #undef STARPU_HAVE_SYNC_LOCK_TEST_AND_SET
  138. #undef STARPU_HAVE_SYNC_SYNCHRONIZE
  139. #undef STARPU_DEVEL
  140. #undef STARPU_MODEL_DEBUG
  141. #undef STARPU_NO_ASSERT
  142. #undef STARPU_DEBUG
  143. #undef STARPU_VERBOSE
  144. #undef STARPU_GDB_PATH
  145. #undef STARPU_HAVE_FFTW
  146. #undef STARPU_HAVE_FFTWF
  147. #undef STARPU_HAVE_FFTWL
  148. #undef STARPU_HAVE_CUFFTDOUBLECOMPLEX
  149. #undef STARPU_HAVE_CURAND
  150. /**
  151. Define the maximum number of memory nodes managed by StarPU. The
  152. default value can be modified at configure by using the option \ref
  153. enable-maxnodes "--enable-maxnodes". Reducing it allows to
  154. considerably reduce memory used by StarPU data structures.
  155. @ingroup API_Workers_Properties
  156. */
  157. #undef STARPU_MAXNODES
  158. /**
  159. Define the maximum number of buffers that tasks will be able to
  160. take as parameters. The default value is 8, it can be changed by
  161. using the configure option \ref enable-maxbuffers
  162. "--enable-maxbuffers".
  163. @ingroup API_Codelet_And_Tasks
  164. */
  165. #undef STARPU_NMAXBUFS
  166. /**
  167. Define the maximum number of fxt mpi files that can be read when
  168. generating traces. The default value is 64, it can be changed by
  169. using the configure option \ref enable-fxt-max-files
  170. "--enable-fxt-max-files".
  171. @ingroup API_MPI_Support
  172. */
  173. #undef STARPU_FXT_MAX_FILES
  174. /**
  175. Define the maximum number of CPU workers managed by StarPU. The
  176. default value can be modified at configure by using the option \ref
  177. enable-maxcpus "--enable-maxcpus".
  178. @ingroup API_Workers_Properties
  179. */
  180. #undef STARPU_MAXCPUS
  181. /**
  182. Define the maximum number of NUMA nodes managed by StarPU. The
  183. default value can be modified at configure by using the option \ref
  184. enable-maxnumanodes "--enable-maxnumanodes".
  185. @ingroup API_Workers_Properties
  186. */
  187. #undef STARPU_MAXNUMANODES
  188. /**
  189. * Define the maximum number of CUDA devices that are supported by StarPU.
  190. * @ingroup API_CUDA_Extensions
  191. */
  192. #undef STARPU_MAXCUDADEVS
  193. /**
  194. Define the maximum number of FPGA devices that are supported by
  195. StarPU.
  196. @ingroup API_FPGA_Extensions
  197. */
  198. #undef STARPU_MAXFPGADEVS
  199. /**
  200. Define the maximum number of OpenCL devices that are supported by
  201. StarPU.
  202. @ingroup API_OpenCL_Extensions
  203. */
  204. #undef STARPU_MAXOPENCLDEVS
  205. /**
  206. Define the maximum number of MIC devices that are supported by
  207. StarPU.
  208. @ingroup API_MIC_Extensions
  209. */
  210. #undef STARPU_MAXMICDEVS
  211. /**
  212. Define the maximum number of workers managed by StarPU.
  213. @ingroup API_Workers_Properties
  214. */
  215. #undef STARPU_NMAXWORKERS
  216. /**
  217. Define the maximum number of scheduling contexts managed by StarPU.
  218. The default value can be modified at configure by using the option
  219. \ref enable-max-sched-ctxs "--enable-max-sched-ctxs".
  220. @ingroup API_Scheduling_Policy
  221. */
  222. #undef STARPU_NMAX_SCHED_CTXS
  223. /**
  224. Define the maximum number of implementations per architecture. The
  225. default value can be modified at configure by using the option \ref
  226. enable-maximplementations "--enable-maximplementations".
  227. @ingroup API_Scheduling_Policy
  228. */
  229. #undef STARPU_MAXIMPLEMENTATIONS
  230. #undef STARPU_MAXMPKERNELS
  231. #undef STARPU_USE_SC_HYPERVISOR
  232. #undef STARPU_SC_HYPERVISOR_DEBUG
  233. #undef STARPU_HAVE_GLPK_H
  234. #undef STARPU_HAVE_CUDA_MEMCPY_PEER
  235. #undef STARPU_HAVE_LIBNUMA
  236. #undef STARPU_HAVE_WINDOWS
  237. #undef STARPU_LINUX_SYS
  238. #undef STARPU_HAVE_SETENV
  239. #undef STARPU_HAVE_UNSETENV
  240. #undef STARPU_HAVE_UNISTD_H
  241. #undef STARPU_HAVE_HDF5
  242. #undef STARPU_USE_FXT
  243. #undef STARPU_FXT_LOCK_TRACES
  244. #ifdef _MSC_VER
  245. typedef long starpu_ssize_t;
  246. #define __starpu_func__ __FUNCTION__
  247. #else
  248. # include <sys/types.h>
  249. typedef ssize_t starpu_ssize_t;
  250. #define __starpu_func__ __func__
  251. #endif
  252. #if defined(c_plusplus) || defined(__cplusplus)
  253. /* inline is part of C++ */
  254. # define __starpu_inline inline
  255. #elif defined(_MSC_VER) || defined(__HP_cc)
  256. # define __starpu_inline __inline
  257. #else
  258. # define __starpu_inline __inline__
  259. #endif
  260. #undef STARPU_QUICK_CHECK
  261. #undef STARPU_LONG_CHECK
  262. #undef STARPU_USE_DRAND48
  263. #undef STARPU_USE_ERAND48_R
  264. #undef STARPU_HAVE_NEARBYINTF
  265. #undef STARPU_HAVE_RINTF
  266. #undef STARPU_HAVE_HWLOC
  267. #undef STARPU_HAVE_PTHREAD_SPIN_LOCK
  268. #undef STARPU_HAVE_PTHREAD_BARRIER
  269. #undef STARPU_HAVE_PTHREAD_SETNAME_NP
  270. #undef STARPU_HAVE_STRUCT_TIMESPEC
  271. #undef STARPU_PTHREAD_MUTEX_INITIALIZER_ZERO
  272. #undef STARPU_PTHREAD_COND_INITIALIZER_ZERO
  273. #undef STARPU_PTHREAD_RWLOCK_INITIALIZER_ZERO
  274. /* This is only for building examples */
  275. #undef STARPU_HAVE_HELGRIND_H
  276. /* Enable Fortran to C MPI interface */
  277. #undef HAVE_MPI_COMM_F2C
  278. #undef STARPU_HAVE_DARWIN
  279. #undef STARPU_HAVE_CXX11
  280. #undef STARPU_HAVE_STRERROR_R
  281. #undef STARPU_HAVE_STATEMENT_EXPRESSIONS
  282. #undef STARPU_PERF_MODEL_DIR
  283. #endif