interoperability.doxy 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  1. /* StarPU --- Runtime system for heterogeneous multicore architectures.
  2. *
  3. * Copyright (C) 2018 Inria
  4. *
  5. * StarPU is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU Lesser General Public License as published by
  7. * the Free Software Foundation; either version 2.1 of the License, or (at
  8. * your option) any later version.
  9. *
  10. * StarPU is distributed in the hope that it will be useful, but
  11. * WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  13. *
  14. * See the GNU Lesser General Public License in COPYING.LGPL for more details.
  15. */
  16. /*! \defgroup API_Interop_Support Interoperability Support
  17. \brief This section describes the interface supplied by StarPU to interoperate with other runtime systems.
  18. \enum e_starpurm_drs_ret
  19. \ingroup API_Interop_Support
  20. StarPU Resource Manager return type.
  21. @name Initialisation
  22. \ingroup API_Interop_Support
  23. \fn void starpurm_initialize(void)
  24. \ingroup API_Interop_Support
  25. TODO.
  26. \fn void starpurm_shutdown(void)
  27. \ingroup API_Interop_Support
  28. TODO.
  29. @name Spawn
  30. \ingroup API_Interop_Support
  31. \fn void starpurm_spawn_kernel_on_cpus(void *data, void(*f)(void *), void *args, hwloc_cpuset_t cpuset)
  32. \ingroup API_Interop_Support
  33. TODO.
  34. \fn void starpurm_spawn_kernel_on_cpus_callback(void *data, void(*f)(void *), void *args, hwloc_cpuset_t cpuset, void(*cb_f)(void *), void *cb_args)
  35. \ingroup API_Interop_Support
  36. TODO.
  37. @name DynamicResourceSharing
  38. \ingroup API_Interop_Support
  39. \fn starpurm_drs_ret_t starpurm_set_drs_enable(starpurm_drs_desc_t *spd)
  40. \ingroup API_Interop_Support
  41. TODO.
  42. \fn starpurm_drs_ret_t starpurm_set_drs_disable(starpurm_drs_desc_t *spd)
  43. \ingroup API_Interop_Support
  44. TODO.
  45. \fn int starpurm_drs_enabled_p(void)
  46. \ingroup API_Interop_Support
  47. TODO.
  48. \fn starpurm_drs_ret_t starpurm_set_max_parallelism(starpurm_drs_desc_t *spd, int max)
  49. \ingroup API_Interop_Support
  50. TODO.
  51. \fn starpurm_drs_ret_t starpurm_callback_set(starpurm_drs_desc_t *spd, starpurm_drs_cbs_t which, starpurm_drs_cb_t callback)
  52. \ingroup API_Interop_Support
  53. TODO.
  54. \fn starpurm_drs_ret_t starpurm_callback_get(starpurm_drs_desc_t *spd, starpurm_drs_cbs_t which, starpurm_drs_cb_t *callback)
  55. \ingroup API_Interop_Support
  56. TODO.
  57. \fn starpurm_drs_ret_t starpurm_assign_cpu_to_starpu(starpurm_drs_desc_t *spd, int cpuid)
  58. \ingroup API_Interop_Support
  59. TODO.
  60. \fn starpurm_drs_ret_t starpurm_assign_cpus_to_starpu(starpurm_drs_desc_t *spd, int ncpus)
  61. \ingroup API_Interop_Support
  62. TODO.
  63. \fn starpurm_drs_ret_t starpurm_assign_cpu_mask_to_starpu(starpurm_drs_desc_t *spd, const hwloc_cpuset_t mask)
  64. \ingroup API_Interop_Support
  65. TODO.
  66. \fn starpurm_drs_ret_t starpurm_assign_all_cpus_to_starpu(starpurm_drs_desc_t *spd)
  67. \ingroup API_Interop_Support
  68. TODO.
  69. \fn starpurm_drs_ret_t starpurm_withdraw_cpu_from_starpu(starpurm_drs_desc_t *spd, int cpuid)
  70. \ingroup API_Interop_Support
  71. TODO.
  72. \fn starpurm_drs_ret_t starpurm_withdraw_cpus_from_starpu(starpurm_drs_desc_t *spd, int ncpus)
  73. \ingroup API_Interop_Support
  74. TODO.
  75. \fn starpurm_drs_ret_t starpurm_withdraw_cpu_mask_from_starpu(starpurm_drs_desc_t *spd, const hwloc_cpuset_t mask)
  76. \ingroup API_Interop_Support
  77. TODO.
  78. \fn starpurm_drs_ret_t starpurm_withdraw_all_cpus_from_starpu(starpurm_drs_desc_t *spd)
  79. \ingroup API_Interop_Support
  80. TODO.
  81. \fn starpurm_drs_ret_t starpurm_lend(starpurm_drs_desc_t *spd)
  82. \ingroup API_Interop_Support
  83. TODO.
  84. \fn starpurm_drs_ret_t starpurm_lend_cpu(starpurm_drs_desc_t *spd, int cpuid)
  85. \ingroup API_Interop_Support
  86. TODO.
  87. \fn starpurm_drs_ret_t starpurm_lend_cpus(starpurm_drs_desc_t *spd, int ncpus)
  88. \ingroup API_Interop_Support
  89. TODO.
  90. \fn starpurm_drs_ret_t starpurm_lend_cpu_mask(starpurm_drs_desc_t *spd, const hwloc_cpuset_t mask)
  91. \ingroup API_Interop_Support
  92. TODO.
  93. \fn starpurm_drs_ret_t starpurm_reclaim(starpurm_drs_desc_t *spd)
  94. \ingroup API_Interop_Support
  95. TODO.
  96. \fn starpurm_drs_ret_t starpurm_reclaim_cpu(starpurm_drs_desc_t *spd, int cpuid)
  97. \ingroup API_Interop_Support
  98. TODO.
  99. \fn starpurm_drs_ret_t starpurm_reclaim_cpus(starpurm_drs_desc_t *spd, int ncpus)
  100. \ingroup API_Interop_Support
  101. TODO.
  102. \fn starpurm_drs_ret_t starpurm_reclaim_cpu_mask(starpurm_drs_desc_t *spd, const hwloc_cpuset_t mask)
  103. \ingroup API_Interop_Support
  104. TODO.
  105. \fn starpurm_drs_ret_t starpurm_acquire(starpurm_drs_desc_t *spd)
  106. \ingroup API_Interop_Support
  107. TODO.
  108. \fn starpurm_drs_ret_t starpurm_acquire_cpu(starpurm_drs_desc_t *spd, int cpuid)
  109. \ingroup API_Interop_Support
  110. TODO.
  111. \fn starpurm_drs_ret_t starpurm_acquire_cpus(starpurm_drs_desc_t *spd, int ncpus)
  112. \ingroup API_Interop_Support
  113. TODO.
  114. \fn starpurm_drs_ret_t starpurm_acquire_cpu_mask(starpurm_drs_desc_t *spd, const hwloc_cpuset_t mask)
  115. \ingroup API_Interop_Support
  116. TODO.
  117. \fn starpurm_drs_ret_t starpurm_return_all(starpurm_drs_desc_t *spd)
  118. \ingroup API_Interop_Support
  119. TODO.
  120. \fn starpurm_drs_ret_t starpurm_return_cpu(starpurm_drs_desc_t *spd, int cpuid)
  121. \ingroup API_Interop_Support
  122. TODO.
  123. @name Devices
  124. \ingroup API_Interop_Support
  125. \fn int starpurm_get_device_type_id(const char *type_str)
  126. \ingroup API_Interop_Support
  127. TODO.
  128. \fn const char *starpurm_get_device_type_name(int type_id)
  129. \ingroup API_Interop_Support
  130. TODO.
  131. \fn int starpurm_get_nb_devices_by_type(int type_id)
  132. \ingroup API_Interop_Support
  133. TODO.
  134. \fn int starpurm_get_device_id(int type_id, int device_rank)
  135. \ingroup API_Interop_Support
  136. TODO.
  137. \fn starpurm_drs_ret_t starpurm_assign_device_to_starpu(starpurm_drs_desc_t *spd, int type_id, int unit_rank)
  138. \ingroup API_Interop_Support
  139. TODO.
  140. \fn starpurm_drs_ret_t starpurm_assign_devices_to_starpu(starpurm_drs_desc_t *spd, int type_id, int ndevices)
  141. \ingroup API_Interop_Support
  142. TODO.
  143. \fn starpurm_drs_ret_t starpurm_assign_device_mask_to_starpu(starpurm_drs_desc_t *spd, const hwloc_cpuset_t mask)
  144. \ingroup API_Interop_Support
  145. TODO.
  146. \fn starpurm_drs_ret_t starpurm_assign_all_devices_to_starpu(starpurm_drs_desc_t *spd, int type_id)
  147. \ingroup API_Interop_Support
  148. TODO.
  149. \fn starpurm_drs_ret_t starpurm_withdraw_device_from_starpu(starpurm_drs_desc_t *spd, int type_id, int unit_rank)
  150. \ingroup API_Interop_Support
  151. TODO.
  152. \fn starpurm_drs_ret_t starpurm_withdraw_devices_from_starpu(starpurm_drs_desc_t *spd, int type_id, int ndevices)
  153. \ingroup API_Interop_Support
  154. TODO.
  155. \fn starpurm_drs_ret_t starpurm_withdraw_device_mask_from_starpu(starpurm_drs_desc_t *spd, const hwloc_cpuset_t mask)
  156. \ingroup API_Interop_Support
  157. TODO.
  158. \fn starpurm_drs_ret_t starpurm_withdraw_all_devices_from_starpu(starpurm_drs_desc_t *spd, int type_id)
  159. \ingroup API_Interop_Support
  160. TODO.
  161. \fn starpurm_drs_ret_t starpurm_lend_device(starpurm_drs_desc_t *spd, int type_id, int unit_rank)
  162. \ingroup API_Interop_Support
  163. TODO.
  164. \fn starpurm_drs_ret_t starpurm_lend_devices(starpurm_drs_desc_t *spd, int type_id, int ndevices)
  165. \ingroup API_Interop_Support
  166. TODO.
  167. \fn starpurm_drs_ret_t starpurm_lend_device_mask(starpurm_drs_desc_t *spd, const hwloc_cpuset_t mask)
  168. \ingroup API_Interop_Support
  169. TODO.
  170. \fn starpurm_drs_ret_t starpurm_lend_all_devices(starpurm_drs_desc_t *spd, int type_id)
  171. \ingroup API_Interop_Support
  172. TODO.
  173. \fn starpurm_drs_ret_t starpurm_reclaim_device(starpurm_drs_desc_t *spd, int type_id, int unit_rank)
  174. \ingroup API_Interop_Support
  175. TODO.
  176. \fn starpurm_drs_ret_t starpurm_reclaim_devices(starpurm_drs_desc_t *spd, int type_id, int ndevices)
  177. \ingroup API_Interop_Support
  178. TODO.
  179. \fn starpurm_drs_ret_t starpurm_reclaim_device_mask(starpurm_drs_desc_t *spd, const hwloc_cpuset_t mask)
  180. \ingroup API_Interop_Support
  181. TODO.
  182. \fn starpurm_drs_ret_t starpurm_reclaim_all_devices(starpurm_drs_desc_t *spd, int type_id)
  183. \ingroup API_Interop_Support
  184. TODO.
  185. \fn starpurm_drs_ret_t starpurm_acquire_device(starpurm_drs_desc_t *spd, int type_id, int unit_rank)
  186. \ingroup API_Interop_Support
  187. TODO.
  188. \fn starpurm_drs_ret_t starpurm_acquire_devices(starpurm_drs_desc_t *spd, int type_id, int ndevices)
  189. \ingroup API_Interop_Support
  190. TODO.
  191. \fn starpurm_drs_ret_t starpurm_acquire_device_mask(starpurm_drs_desc_t *spd, const hwloc_cpuset_t mask)
  192. \ingroup API_Interop_Support
  193. TODO.
  194. \fn starpurm_drs_ret_t starpurm_acquire_all_devices(starpurm_drs_desc_t *spd, int type_id)
  195. \ingroup API_Interop_Support
  196. TODO.
  197. \fn starpurm_drs_ret_t starpurm_return_all_devices(starpurm_drs_desc_t *spd, int type_id)
  198. \ingroup API_Interop_Support
  199. TODO.
  200. \fn starpurm_drs_ret_t starpurm_return_device(starpurm_drs_desc_t *spd, int type_id, int unit_rank)
  201. \ingroup API_Interop_Support
  202. TODO.
  203. @name CpusetsQueries
  204. \ingroup API_Interop_Support
  205. \fn hwloc_cpuset_t starpurm_get_device_worker_cpuset(int type_id, int unit_rank)
  206. \ingroup API_Interop_Support
  207. TODO.
  208. \fn hwloc_cpuset_t starpurm_get_global_cpuset(void)
  209. \ingroup API_Interop_Support
  210. TODO.
  211. \fn hwloc_cpuset_t starpurm_get_selected_cpuset(void)
  212. \ingroup API_Interop_Support
  213. TODO.
  214. \fn hwloc_cpuset_t starpurm_get_all_cpu_workers_cpuset(void)
  215. \ingroup API_Interop_Support
  216. TODO.
  217. \fn hwloc_cpuset_t starpurm_get_all_device_workers_cpuset(void)
  218. \ingroup API_Interop_Support
  219. TODO.
  220. \fn hwloc_cpuset_t starpurm_get_all_device_workers_cpuset_by_type(int typeid)
  221. \ingroup API_Interop_Support
  222. TODO.
  223. */