瀏覽代碼

- documentation

Olivier Aumage 10 年之前
父節點
當前提交
1d10399dd4
共有 1 個文件被更改,包括 76 次插入0 次删除
  1. 76 0
      doc/doxygen/chapters/api/openmp_runtime_support.doxy

+ 76 - 0
doc/doxygen/chapters/api/openmp_runtime_support.doxy

@@ -123,6 +123,43 @@ outlining.
 \return <c>!0</c> if the calling thread has won the election.
 \return <c>!0</c> if the calling thread has won the election.
 \return <c>0</c> if the calling thread has lost the election.
 \return <c>0</c> if the calling thread has lost the election.
 
 
+\fn void starpu_omp_single_copyprivate(void (*f)(void *arg, void *data, unsigned long long data_size), void *arg, void *data, unsigned long long data_size)
+\ingroup API_OpenMP_Runtime_Support
+This function executes \p f on a single task of the current parallel region
+task, and then broadcast the contents of the memory block pointed by the
+copyprivate pointer \p data and of size \p data_size to the corresponding \p
+data pointed memory blocks of all the other participating region tasks. This
+function can be used to implement <c>\#pragma omp single</c> with a copyprivate
+clause.
+
+\sa starpu_omp_single_copyprivate_inline
+\sa starpu_omp_single_copyprivate_inline_begin
+\sa starpu_omp_single_copyprivate_inline_end
+
+\fn void *starpu_omp_single_copyprivate_inline_begin(void *data)
+\ingroup API_OpenMP_Runtime_Support
+This function elects one task among the tasks of the current parallel region
+task to execute the following single section, and then broadcast the
+copyprivate pointer \p data to all the other participating region tasks. This
+function can be used to implement <c>\#pragma omp single</c> with a copyprivate
+clause without code outlining.
+
+\sa starpu_omp_single_copyprivate_inline
+\sa starpu_omp_single_copyprivate_inline_end
+
+\fn void starpu_omp_single_copyprivate_inline_end(void)
+\ingroup API_OpenMP_Runtime_Support
+This function completes the execution of a single section and returns the
+broadcasted copyprivate pointer for tasks that lost the election and NULL for
+the task that won the election. This function can be used to implement
+<c>\#pragma omp single</c> with a copyprivate clause without code outlining.
+
+\return the copyprivate pointer for tasks that lost the election and therefore did not execute the code of the single section.
+\return NULL for the task that won the election and executed the code of the single section.
+
+\sa starpu_omp_single_copyprivate_inline
+\sa starpu_omp_single_copyprivate_inline_begin
+
 \fn void starpu_omp_for(void (*f)(unsigned long long _first_i, unsigned long long _nb_i, void *arg), void *arg, unsigned long long nb_iterations, unsigned long long chunk, int schedule, int ordered, int nowait)
 \fn void starpu_omp_for(void (*f)(unsigned long long _first_i, unsigned long long _nb_i, void *arg), void *arg, unsigned long long nb_iterations, unsigned long long chunk, int schedule, int ordered, int nowait)
 \ingroup API_OpenMP_Runtime_Support
 \ingroup API_OpenMP_Runtime_Support
 Executes a parallel loop together with the other threads participating to the
 Executes a parallel loop together with the other threads participating to the
@@ -294,6 +331,30 @@ generated during the execution of the function.
 
 
 This function can be used to implement <c>\#pragma omp taskgroup</c>.
 This function can be used to implement <c>\#pragma omp taskgroup</c>.
 
 
+\sa starpu_omp_taskgroup_inline_begin
+\sa starpu_omp_taskgroup_inline_end
+
+\fn void starpu_omp_taskgroup_inline_begin(void)
+\ingroup API_OpenMP_Runtime_Support
+Launches a function and gets ready to wait for the completion of every descendant task
+generated during the dynamic scope of the taskgroup.
+
+This function can be used to implement <c>\#pragma omp taskgroup</c> without code outlining.
+
+\sa starpu_omp_taskgroup
+\sa starpu_omp_taskgroup_inline_end
+
+\fn void starpu_omp_taskgroup_inline_end(void)
+\ingroup API_OpenMP_Runtime_Support
+Waits for the completion of every descendant task
+generated during the dynamic scope of the taskgroup.
+
+This function can be used to implement <c>\#pragma omp taskgroup</c> without code outlining.
+
+\sa starpu_omp_taskgroup
+\sa starpu_omp_taskgroup_inline_begin
+
+
 @name API
 @name API
 \anchor ORS_API
 \anchor ORS_API
 \ingroup API_OpenMP_Runtime_Support
 \ingroup API_OpenMP_Runtime_Support
@@ -669,6 +730,21 @@ function will increase the nested locking level of the lock object.
 \sa starpu_omp_set_nest_lock
 \sa starpu_omp_set_nest_lock
 \sa starpu_omp_unset_nest_lock
 \sa starpu_omp_unset_nest_lock
 
 
+\fn void starpu_omp_atomic_fallback_inline_begin(void)
+\ingroup API_OpenMP_Runtime_Support
+This function implements the entry point of a fallback global atomic region. It
+blocks until it succeeds in acquiring exclusive access to the global atomic
+region.
+
+\sa starpu_omp_atomic_fallback_inline_end
+
+\fn void starpu_omp_atomic_fallback_inline_end(void)
+\ingroup API_OpenMP_Runtime_Support
+This function implements the exit point of a fallback global atomic region. It
+release the exclusive access to the global atomic region.
+
+\sa starpu_omp_atomic_fallback_inline_begin
+
 \fn double starpu_omp_get_wtime (void)
 \fn double starpu_omp_get_wtime (void)
 \ingroup API_OpenMP_Runtime_Support
 \ingroup API_OpenMP_Runtime_Support
 This function returns the elapsed wallclock time in seconds.
 This function returns the elapsed wallclock time in seconds.