|
@@ -0,0 +1,313 @@
|
|
|
+/*
|
|
|
+ * This file is part of the StarPU Handbook.
|
|
|
+ * Copyright (C) 2014 Inria
|
|
|
+ * See the file version.doxy for copying conditions.
|
|
|
+ */
|
|
|
+
|
|
|
+/*! \defgroup API_OpenMP_Runtime_Support OpenMP Runtime Support
|
|
|
+
|
|
|
+@name Initialisation
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+
|
|
|
+\def STARPU_OPENMP
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This macro is defined when StarPU has been installed with OpenMP Runtime
|
|
|
+support. It should be used in your code to detect the availability of
|
|
|
+the runtime support for OpenMP.
|
|
|
+
|
|
|
+\fn int starpu_omp_init(void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+Initializes StarPU and its OpenMP Runtime support.
|
|
|
+
|
|
|
+\fn int starpu_omp_shutdown(void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+Shutdown StarPU and its OpenMP Runtime support.
|
|
|
+
|
|
|
+@name Parallel
|
|
|
+\anchor ORS_Parallel
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+
|
|
|
+\fn void starpu_omp_parallel_region(const struct starpu_omp_parallel_region_attr *attr)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+Generates and launch an OpenMP parallel region and return after its
|
|
|
+completion. \p attr specifies the attributes for the generated parallel region.
|
|
|
+If this function is called from inside another, generating, parallel region, the
|
|
|
+generated parallel region is nested within the generating parallel region. This
|
|
|
+function can be used to implement <c>pragma omp parallel</c>.
|
|
|
+
|
|
|
+\fn void starpu_omp_master(void (*f)(void *arg), void *arg)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+Executes a function only on the master thread of the OpenMP
|
|
|
+parallel region it is called from. When called from a thread that is not the
|
|
|
+master of the parallel region it is called from, this function does nothing. \p
|
|
|
+f is the function to be called. \p arg is an argument passed to \p arg. This
|
|
|
+function can be used to implement <c>pragma omp master</c>.
|
|
|
+
|
|
|
+\fn int starpu_omp_master_inline(void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+Returns whether the calling thread is the master of the OpenMP parallel region
|
|
|
+it is called from or not. This function can be used to implement <c>pragma omp
|
|
|
+master</c> without code outlining.
|
|
|
+
|
|
|
+@name Synchronization
|
|
|
+\anchor ORS_Synchronization
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+
|
|
|
+\fn void starpu_omp_barrier(void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_critical(void (*f)(void *arg), void *arg, const char *name)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_critical_inline_begin(const char *name)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_critical_inline_end(const char *name)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+
|
|
|
+@name Worksharing
|
|
|
+\anchor ORS_Worksharing
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+
|
|
|
+\fn void starpu_omp_single(void (*f)(void *arg), void *arg, int nowait)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_single_inline(void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\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
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_for_inline_first(unsigned long long nb_iterations, unsigned long long chunk, int schedule, int ordered, unsigned long long *_first_i, unsigned long long *_nb_i)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_for_inline_next(unsigned long long nb_iterations, unsigned long long chunk, int schedule, int ordered, unsigned long long *_first_i, unsigned long long *_nb_i)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_for_alt(void (*f)(unsigned long long _begin_i, unsigned long long _end_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
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_for_inline_first_alt(unsigned long long nb_iterations, unsigned long long chunk, int schedule, int ordered, unsigned long long *_begin_i, unsigned long long *_end_i)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_for_inline_next_alt(unsigned long long nb_iterations, unsigned long long chunk, int schedule, int ordered, unsigned long long *_begin_i, unsigned long long *_end_i)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_ordered_inline_begin(void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_ordered_inline_end(void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_ordered(void (*f)(void *arg), void *arg)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_sections(unsigned long long nb_sections, void (**section_f)(void *arg), void **section_arg, int nowait)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_sections_combined(unsigned long long nb_sections, void (*section_f)(unsigned long long section_num, void *arg), void **section_arg, int nowait)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+@name Task
|
|
|
+\anchor ORS_Task
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+
|
|
|
+\fn void starpu_omp_task_region(const struct starpu_omp_task_region_attr *attr)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_taskwait(void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_taskgroup(void (*f)(void *arg), void *arg)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+
|
|
|
+@name API
|
|
|
+\anchor ORS_API
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+
|
|
|
+\fn void starpu_omp_set_num_threads(int threads)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_get_num_threads()
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_get_thread_num()
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_get_max_threads()
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_get_num_procs (void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_in_parallel (void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_set_dynamic (int dynamic_threads)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_get_dynamic (void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_set_nested (int nested)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_get_nested (void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_get_cancellation(void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_set_schedule (enum starpu_omp_sched_value kind, int modifier)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_get_schedule (enum starpu_omp_sched_value *kind, int *modifier)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_get_thread_limit (void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_set_max_active_levels (int max_levels)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_get_max_active_levels (void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_get_level (void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_get_ancestor_thread_num (int level)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_get_team_size (int level)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_get_active_level (void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_in_final(void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn enum starpu_omp_proc_bind_value starpu_omp_get_proc_bind(void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_set_default_device(int device_num)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_get_default_device(void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_get_num_devices(void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_get_num_teams(void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_get_team_num(void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_is_initial_device(void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_init_lock (starpu_omp_lock_t *lock)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_destroy_lock (starpu_omp_lock_t *lock)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_set_lock (starpu_omp_lock_t *lock)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_unset_lock (starpu_omp_lock_t *lock)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_test_lock (starpu_omp_lock_t *lock)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_init_nest_lock (starpu_omp_nest_lock_t *lock)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_destroy_nest_lock (starpu_omp_nest_lock_t *lock)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_set_nest_lock (starpu_omp_nest_lock_t *lock)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn void starpu_omp_unset_nest_lock (starpu_omp_nest_lock_t *lock)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn int starpu_omp_test_nest_lock (starpu_omp_nest_lock_t *lock)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn double starpu_omp_get_wtime (void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+\fn double starpu_omp_get_wtick (void)
|
|
|
+\ingroup API_OpenMP_Runtime_Support
|
|
|
+This function .
|
|
|
+
|
|
|
+
|
|
|
+*/
|