StarPU Handbook - StarPU Language Bindings
|
This section describes the interface provided for implementing OpenMP runtimes on top of StarPU. More...
Data Structures | |
struct | starpu_omp_lock_t |
struct | starpu_omp_nest_lock_t |
struct | starpu_omp_parallel_region_attr |
struct | starpu_omp_task_region_attr |
Macros | |
#define | STARPU_OPENMP |
#define | __STARPU_OMP_NOTHROW |
Initialisation | |
int | starpu_omp_init (void) __STARPU_OMP_NOTHROW |
void | starpu_omp_shutdown (void) __STARPU_OMP_NOTHROW |
Parallel | |
void | starpu_omp_parallel_region (const struct starpu_omp_parallel_region_attr *attr) __STARPU_OMP_NOTHROW |
void | starpu_omp_master (void(*f)(void *arg), void *arg) __STARPU_OMP_NOTHROW |
int | starpu_omp_master_inline (void) __STARPU_OMP_NOTHROW |
Synchronization | |
void | starpu_omp_barrier (void) __STARPU_OMP_NOTHROW |
void | starpu_omp_critical (void(*f)(void *arg), void *arg, const char *name) __STARPU_OMP_NOTHROW |
void | starpu_omp_critical_inline_begin (const char *name) __STARPU_OMP_NOTHROW |
void | starpu_omp_critical_inline_end (const char *name) __STARPU_OMP_NOTHROW |
Worksharing | |
void | starpu_omp_single (void(*f)(void *arg), void *arg, int nowait) __STARPU_OMP_NOTHROW |
int | starpu_omp_single_inline (void) __STARPU_OMP_NOTHROW |
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) __STARPU_OMP_NOTHROW |
void * | starpu_omp_single_copyprivate_inline_begin (void *data) __STARPU_OMP_NOTHROW |
void | starpu_omp_single_copyprivate_inline_end (void) __STARPU_OMP_NOTHROW |
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) __STARPU_OMP_NOTHROW |
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) __STARPU_OMP_NOTHROW |
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) __STARPU_OMP_NOTHROW |
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) __STARPU_OMP_NOTHROW |
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) __STARPU_OMP_NOTHROW |
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) __STARPU_OMP_NOTHROW |
void | starpu_omp_ordered (void(*f)(void *arg), void *arg) __STARPU_OMP_NOTHROW |
void | starpu_omp_ordered_inline_begin (void) __STARPU_OMP_NOTHROW |
void | starpu_omp_ordered_inline_end (void) __STARPU_OMP_NOTHROW |
void | starpu_omp_sections (unsigned long long nb_sections, void(**section_f)(void *arg), void **section_arg, int nowait) __STARPU_OMP_NOTHROW |
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) __STARPU_OMP_NOTHROW |
Task | |
void | starpu_omp_task_region (const struct starpu_omp_task_region_attr *attr) __STARPU_OMP_NOTHROW |
void | starpu_omp_taskwait (void) __STARPU_OMP_NOTHROW |
void | starpu_omp_taskgroup (void(*f)(void *arg), void *arg) __STARPU_OMP_NOTHROW |
void | starpu_omp_taskgroup_inline_begin (void) __STARPU_OMP_NOTHROW |
void | starpu_omp_taskgroup_inline_end (void) __STARPU_OMP_NOTHROW |
void | starpu_omp_taskloop_inline_begin (struct starpu_omp_task_region_attr *attr) __STARPU_OMP_NOTHROW |
void | starpu_omp_taskloop_inline_end (const struct starpu_omp_task_region_attr *attr) __STARPU_OMP_NOTHROW |
API | |
void | starpu_omp_set_num_threads (int threads) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_num_threads (void) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_thread_num (void) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_max_threads (void) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_num_procs (void) __STARPU_OMP_NOTHROW |
int | starpu_omp_in_parallel (void) __STARPU_OMP_NOTHROW |
void | starpu_omp_set_dynamic (int dynamic_threads) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_dynamic (void) __STARPU_OMP_NOTHROW |
void | starpu_omp_set_nested (int nested) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_nested (void) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_cancellation (void) __STARPU_OMP_NOTHROW |
void | starpu_omp_set_schedule (enum starpu_omp_sched_value kind, int modifier) __STARPU_OMP_NOTHROW |
void | starpu_omp_get_schedule (enum starpu_omp_sched_value *kind, int *modifier) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_thread_limit (void) __STARPU_OMP_NOTHROW |
void | starpu_omp_set_max_active_levels (int max_levels) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_max_active_levels (void) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_level (void) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_ancestor_thread_num (int level) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_team_size (int level) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_active_level (void) __STARPU_OMP_NOTHROW |
int | starpu_omp_in_final (void) __STARPU_OMP_NOTHROW |
enum starpu_omp_proc_bind_value | starpu_omp_get_proc_bind (void) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_num_places (void) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_place_num_procs (int place_num) __STARPU_OMP_NOTHROW |
void | starpu_omp_get_place_proc_ids (int place_num, int *ids) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_place_num (void) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_partition_num_places (void) __STARPU_OMP_NOTHROW |
void | starpu_omp_get_partition_place_nums (int *place_nums) __STARPU_OMP_NOTHROW |
void | starpu_omp_set_default_device (int device_num) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_default_device (void) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_num_devices (void) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_num_teams (void) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_team_num (void) __STARPU_OMP_NOTHROW |
int | starpu_omp_is_initial_device (void) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_initial_device (void) __STARPU_OMP_NOTHROW |
int | starpu_omp_get_max_task_priority (void) __STARPU_OMP_NOTHROW |
void | starpu_omp_init_lock (starpu_omp_lock_t *lock) __STARPU_OMP_NOTHROW |
void | starpu_omp_destroy_lock (starpu_omp_lock_t *lock) __STARPU_OMP_NOTHROW |
void | starpu_omp_set_lock (starpu_omp_lock_t *lock) __STARPU_OMP_NOTHROW |
void | starpu_omp_unset_lock (starpu_omp_lock_t *lock) __STARPU_OMP_NOTHROW |
int | starpu_omp_test_lock (starpu_omp_lock_t *lock) __STARPU_OMP_NOTHROW |
void | starpu_omp_init_nest_lock (starpu_omp_nest_lock_t *lock) __STARPU_OMP_NOTHROW |
void | starpu_omp_destroy_nest_lock (starpu_omp_nest_lock_t *lock) __STARPU_OMP_NOTHROW |
void | starpu_omp_set_nest_lock (starpu_omp_nest_lock_t *lock) __STARPU_OMP_NOTHROW |
void | starpu_omp_unset_nest_lock (starpu_omp_nest_lock_t *lock) __STARPU_OMP_NOTHROW |
int | starpu_omp_test_nest_lock (starpu_omp_nest_lock_t *lock) __STARPU_OMP_NOTHROW |
void | starpu_omp_atomic_fallback_inline_begin (void) __STARPU_OMP_NOTHROW |
void | starpu_omp_atomic_fallback_inline_end (void) __STARPU_OMP_NOTHROW |
double | starpu_omp_get_wtime (void) __STARPU_OMP_NOTHROW |
double | starpu_omp_get_wtick (void) __STARPU_OMP_NOTHROW |
void | starpu_omp_vector_annotate (starpu_data_handle_t handle, uint32_t slice_base) __STARPU_OMP_NOTHROW |
struct starpu_arbiter * | starpu_omp_get_default_arbiter (void) __STARPU_OMP_NOTHROW |
void | starpu_omp_handle_register (starpu_data_handle_t handle) __STARPU_OMP_NOTHROW |
void | starpu_omp_handle_unregister (starpu_data_handle_t handle) __STARPU_OMP_NOTHROW |
starpu_data_handle_t | starpu_omp_data_lookup (const void *ptr) __STARPU_OMP_NOTHROW |
This section describes the interface provided for implementing OpenMP runtimes on top of StarPU.
struct starpu_omp_lock_t |
struct starpu_omp_nest_lock_t |
struct starpu_omp_parallel_region_attr |
Set of attributes used for creating a new parallel region.
Data Fields | ||
---|---|---|
struct starpu_codelet | cl |
starpu_codelet (Codelet And Tasks) to use for the parallel region implicit tasks. The codelet must provide a CPU implementation function. |
starpu_data_handle_t * | handles |
Array of zero or more starpu_data_handle_t data handle to be passed to the parallel region implicit tasks. |
void * | cl_arg |
Optional pointer to an inline argument to be passed to the region implicit tasks. |
size_t | cl_arg_size |
Size of the optional inline argument to be passed to the region implicit tasks, or 0 if unused. |
unsigned | cl_arg_free |
Boolean indicating whether the optional inline argument should be automatically freed (true), or not (false). |
int | if_clause |
Boolean indicating whether the if clause of the corresponding |
int | num_threads |
Integer indicating the requested number of threads in the team of the newly created parallel region, or 0 to let the runtime choose the number of threads alone. This attribute may be ignored by the runtime system if the requested number of threads is higher than the number of threads that the runtime can create. |
struct starpu_omp_task_region_attr |
Set of attributes used for creating a new task region.
Data Fields | ||
---|---|---|
struct starpu_codelet | cl |
starpu_codelet (Codelet And Tasks) to use for the task region explicit task. The codelet must provide a CPU implementation function or an accelerator implementation for offloaded target regions. |
starpu_data_handle_t * | handles |
Array of zero or more starpu_data_handle_t data handle to be passed to the task region explicit tasks. |
void * | cl_arg |
Optional pointer to an inline argument to be passed to the region implicit tasks. |
size_t | cl_arg_size |
Size of the optional inline argument to be passed to the region implicit tasks, or 0 if unused. |
unsigned | cl_arg_free |
Boolean indicating whether the optional inline argument should be automatically freed (true), or not (false). |
int | priority | |
int | if_clause |
Boolean indicating whether the if clause of the corresponding |
int | final_clause |
Boolean indicating whether the final clause of the corresponding |
int | untied_clause |
Boolean indicating whether the untied clause of the corresponding |
int | mergeable_clause |
Boolean indicating whether the mergeable clause of the corresponding |
int | is_loop |
taskloop attribute |
int | nogroup_clause | |
int | collapse | |
int | num_tasks | |
unsigned long long | nb_iterations | |
unsigned long long | grainsize | |
unsigned long long | begin_i | |
unsigned long long | end_i | |
unsigned long long | chunk |
#define STARPU_OPENMP |
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.
Set of constants for selecting the for loop iteration scheduling algorithm () as defined by the OpenMP specification.
Set of constants for selecting the processor binding method, as defined in the OpenMP specification.
|
extern |
Initialize StarPU and its OpenMP Runtime support. See Initialization and Shutdown for more details.
|
extern |
Shutdown StarPU and its OpenMP Runtime support. See Initialization and Shutdown for more details.
|
extern |
Generate and launch an OpenMP parallel region and return after its completion. 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 #pragma omp parallel
. See Parallel Regions for more details.
|
extern |
Execute 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. f
is the function to be called. arg
is an argument passed to function f
.
This function can be used to implement #pragma omp master
. See Single for more details.
|
extern |
Determine 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 #pragma omp master
without code outlining.
!0
if called by the region's master thread. 0
if not called by the region's master thread. See Single for more details.
|
extern |
Wait until each participating thread of the innermost OpenMP parallel region has reached the barrier and each explicit OpenMP task bound to this region has completed its execution.
This function can be used to implement #pragma omp barrier
. See Barriers for more details.
|
extern |
Wait until no other thread is executing within the context of the selected critical section, then proceeds to the exclusive execution of a function within the critical section. f
is the function to be executed in the critical section. arg
is an argument passed to function f
. name
is the name of the selected critical section. If name == NULL
, the selected critical section is the unique anonymous critical section.
This function can be used to implement #pragma omp critical
.
See Critical Sections for more details.
|
extern |
Wait until execution can proceed exclusively within the context of the selected critical section. name
is the name of the selected critical section. If name == NULL
, the selected critical section is the unique anonymous critical section.
This function together with starpu_omp_critical_inline_end can be used to implement #pragma omp critical
without code outlining.
See Critical Sections for more details.
|
extern |
End the exclusive execution within the context of the selected critical section. name
is the name of the selected critical section. If name==NULL
, the selected critical section is the unique anonymous critical section.
This function together with starpu_omp_critical_inline_begin can be used to implement #pragma omp critical
without code outlining.
See Critical Sections for more details.
|
extern |
Ensure that a single participating thread of the innermost OpenMP parallel region executes a function. f
is the function to be executed by a single thread. arg
is an argument passed to function f
. nowait
is a flag indicating whether an implicit barrier is requested after the single section (nowait==0
) or not (nowait==!0
).
This function can be used to implement #pragma omp single
. See Single for more details.
|
extern |
Decide whether the current thread is elected to run the following single section among the participating threads of the innermost OpenMP parallel region.
This function can be used to implement #pragma omp single
without code outlining.
!0
if the calling thread has won the election. 0
if the calling thread has lost the election. See Single for more details.
|
extern |
Execute 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 data
and of size data_size
to the corresponding data
pointed memory blocks of all the other participating region tasks. This function can be used to implement #pragma omp single
with a copyprivate clause.
See Single for more details.
|
extern |
Elect one task among the tasks of the current parallel region task to execute the following single section, and then broadcast the copyprivate pointer data
to all the other participating region tasks. This function can be used to implement #pragma omp single
with a copyprivate clause without code outlining.
See Single for more details.
|
extern |
Complete the execution of a single section and return 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 #pragma omp single
with a copyprivate clause without code outlining.
NULL
for the task that won the election and executed the code of the single section.See Single for more details.
|
extern |
Execute a parallel loop together with the other threads participating to the innermost parallel region. f
is the function to be executed iteratively. arg
is an argument passed to function f
. nb_iterations
is the number of iterations to be performed by the parallel loop. chunk
is the number of consecutive iterations that should be affected to the same thread when scheduling the loop workshares, it follows the semantics of the modifier
argument in OpenMP #pragma omp for
specification. schedule
is the scheduling mode according to the OpenMP specification. ordered
is a flag indicating whether the loop region may contain an ordered section (ordered==!0
) or not (ordered==0
). nowait
is a flag indicating whether an implicit barrier is requested after the for section (nowait==0
) or not (nowait==!0
).
The function f
will be called with arguments _first_i
, the first iteration to perform, _nb_i
, the number of consecutive iterations to perform before returning, arg
, the free arg
argument.
This function can be used to implement #pragma omp for
. See Parallel For for more details.
|
extern |
Decide whether the current thread should start to execute a parallel loop section. See starpu_omp_for for the argument description.
This function together with starpu_omp_for_inline_next can be used to implement #pragma omp for
without code outlining.
!0
if the calling thread participates to the loop region and should execute a first chunk of iterations. In that case, *_first_i
will be set to the first iteration of the chunk to perform and *_nb_i
will be set to the number of iterations of the chunk to perform.0
if the calling thread does not participate to the loop region because all the available iterations have been affected to the other threads of the parallel region.See Parallel For for more details.
|
extern |
Decide whether the current thread should continue to execute a parallel loop section. See starpu_omp_for for the argument description.
This function together with starpu_omp_for_inline_first can be used to implement #pragma omp for
without code outlining.
!0
if the calling thread should execute a next chunk of iterations. In that case, *_first_i
will be set to the first iteration of the chunk to perform and *_nb_i
will be set to the number of iterations of the chunk to perform.0
if the calling thread does not participate anymore to the loop region because all the available iterations have been affected to the other threads of the parallel region.See Parallel For for more details.
|
extern |
Alternative implementation of a parallel loop. Differ from starpu_omp_for in the expected arguments of the loop function f
.
The function f
will be called with arguments _begin_i
, the first iteration to perform, _end_i
, the first iteration not to perform before returning, arg
, the free arg
argument.
This function can be used to implement #pragma omp for
.
See Parallel For for more details.
|
extern |
Inline version of the alternative implementation of a parallel loop.
This function together with starpu_omp_for_inline_next_alt can be used to implement #pragma omp for
without code outlining.
See Parallel For for more details.
|
extern |
Inline version of the alternative implementation of a parallel loop.
This function together with starpu_omp_for_inline_first_alt can be used to implement #pragma omp for
without code outlining.
See Parallel For for more details.
|
extern |
Ensure that a function is sequentially executed once for each iteration in order within a parallel loop, by the thread that own the iteration. f
is the function to be executed by the thread that own the current iteration. arg
is an argument passed to function f
.
This function can be used to implement #pragma omp ordered
.
See Parallel For for more details.
|
extern |
Wait until all the iterations of a parallel loop below the iteration owned by the current thread have been executed.
This function together with starpu_omp_ordered_inline_end can be used to implement #pragma omp ordered
without code code outlining.
See Parallel For for more details.
|
extern |
Notify that the ordered section for the current iteration has been completed.
This function together with starpu_omp_ordered_inline_begin can be used to implement #pragma omp ordered
without code code outlining.
See Parallel For for more details.
|
extern |
Ensure that each function of a given array of functions is executed by one and only one thread. nb_sections
is the number of functions in the array section_f
. section_f
is the array of functions to be executed as sections. section_arg
is an array of arguments to be passed to the corresponding function. nowait
is a flag indicating whether an implicit barrier is requested after the execution of all the sections (nowait==0
) or not (nowait==!0
).
This function can be used to implement #pragma omp sections
and #pragma omp section
.
See Sections for more details.
|
extern |
Alternative implementation of sections. Differ from starpu_omp_sections in that all the sections are combined within a single function in this version. section_f
is the function implementing the combined sections.
The function section_f
will be called with arguments section_num
, the section number to be executed, arg
, the entry of section_arg
corresponding to this section.
This function can be used to implement #pragma omp sections
and #pragma omp section
.
See Sections for more details.
|
extern |
Generate an explicit child task. The execution of the generated task is asynchronous with respect to the calling code unless specified otherwise. attr
specifies the attributes for the generated task region.
This function can be used to implement #pragma omp task
.
See Explicit Tasks for more details.
|
extern |
Wait for the completion of the tasks generated by the current task. This function does not wait for the descendants of the tasks generated by the current task.
This function can be used to implement #pragma omp taskwait
.
See TaskWait and TaskGroup for more details.
|
extern |
Launch a function and wait for the completion of every descendant task generated during the execution of the function.
This function can be used to implement #pragma omp taskgroup
.
See TaskWait and TaskGroup for more details.
|
extern |
Launch 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 #pragma omp taskgroup
without code outlining.
See TaskWait and TaskGroup for more details.
|
extern |
Wait for the completion of every descendant task generated during the dynamic scope of the taskgroup.
This function can be used to implement #pragma omp taskgroup
without code outlining.
See TaskWait and TaskGroup for more details.
|
extern |
Set ICVS nthreads_var for the parallel regions to be created with the current region.
Note: The StarPU OpenMP runtime support currently ignores this setting for nested parallel regions.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the number of threads of the current region.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the rank of the current thread among the threads of the current region.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the maximum number of threads that can be used to create a region from the current region.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the number of StarPU CPU workers.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return whether it is called from the scope of a parallel region or not.
!0
if called from a parallel region scope. 0
otherwise.See OpenMP Standard Functions in StarPU for more details.
|
extern |
Enable (1) or disable (0) dynamically adjusting the number of parallel threads.
Note: The StarPU OpenMP runtime support currently ignores the argument of this function.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the state of dynamic thread number adjustment.
!0
if dynamic thread number adjustment is enabled. 0
otherwise.See OpenMP Standard Functions in StarPU for more details.
|
extern |
Enable (1) or disable (0) nested parallel regions.
Note: The StarPU OpenMP runtime support currently ignores the argument of this function.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return whether nested parallel sections are enabled or not.
!0
if nested parallel sections are enabled. 0
otherwise.See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the state of the cancel ICVS var.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Set the default scheduling kind for upcoming loops within the current parallel section. kind
is the scheduler kind, modifier
complements the scheduler kind with informations such as the chunk size, in accordance with the OpenMP specification.
See Parallel For for more details.
|
extern |
Return the current selected default loop scheduler.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the number of StarPU CPU workers.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Set the maximum number of allowed active parallel section levels.
Note: The StarPU OpenMP runtime support currently ignores the argument of this function and assume max_levels
equals 1
instead.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the current maximum number of allowed active parallel section levels
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the nesting level of the current parallel section.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the number of the ancestor of the current parallel section.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the size of the team of the current parallel section.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the nestinglevel of the current innermost active parallel section.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Check whether the current task is final or not.
!0
if called from a final task. 0
otherwise.See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the proc_bind setting of the current parallel region.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the number of places available to the execution environment in the place list.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the number of processors available to the execution environment in the specified place.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the numerical identifiers of the processors available to the execution environment in the specified place.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the place number of the place to which the encountering thread is bound.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the number of places in the place partition of the innermost implicit task.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the list of place numbers corresponding to the places in the place-partition-var ICV of the innermost implicit task.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Set the number of the device to use as default.
Note: The StarPU OpenMP runtime support currently ignores the argument of this function.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the number of the device used as default.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the number of the devices.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the number of teams in the current teams region.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the team number of the calling thread.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Check whether the current device is the initial device or not.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return a device number that represents the host device.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the maximum value that can be specified in the priority clause.
!0
if called from the host device. 0
otherwise.See OpenMP Standard Functions in StarPU for more details.
|
extern |
Initialize an opaque lock object.
See Simple Locks for more details.
|
extern |
Destroy an opaque lock object.
See Simple Locks for more details.
|
extern |
Lock an opaque lock object. If the lock is already locked, the function will block until it succeeds in exclusively acquiring the lock.
See Simple Locks for more details.
|
extern |
Unlock a previously locked lock object. The behaviour of this function is unspecified if it is called on an unlocked lock object.
See Simple Locks for more details.
|
extern |
Unblockingly attempt to lock a lock object and return whether it succeeded or not.
!0
if the function succeeded in acquiring the lock. 0
if the lock was already locked.See Simple Locks for more details.
|
extern |
Initialize an opaque lock object supporting nested locking operations.
See Nestable Locks for more details.
|
extern |
Destroy an opaque lock object supporting nested locking operations.
See Nestable Locks for more details.
|
extern |
Lock an opaque lock object supporting nested locking operations. If the lock is already locked by another task, the function will block until it succeeds in exclusively acquiring the lock. If the lock is already taken by the current task, the function will increase the nested locking level of the lock object.
See Nestable Locks for more details.
|
extern |
Unlock a previously locked lock object supporting nested locking operations. If the lock has been locked multiple times in nested fashion, the nested locking level is decreased and the lock remains locked. Otherwise, if the lock has only been locked once, it becomes unlocked. The behaviour of this function is unspecified if it is called on an unlocked lock object. The behaviour of this function is unspecified if it is called from a different task than the one that locked the lock object.
See Nestable Locks for more details.
|
extern |
Unblocking attempt to lock an opaque lock object supporting nested locking operations and returns whether it succeeded or not. If the lock is already locked by another task, the function will return without having acquired the lock. If the lock is already taken by the current task, the function will increase the nested locking level of the lock object.
!0
if the function succeeded in acquiring the lock. 0
if the lock was already locked.See Nestable Locks for more details.
|
extern |
Implement the entry point of a fallback global atomic region. Block until it succeeds in acquiring exclusive access to the global atomic region.
|
extern |
Implement the exit point of a fallback global atomic region. Release the exclusive access to the global atomic region.
|
extern |
Return the elapsed wallclock time in seconds.
See OpenMP Standard Functions in StarPU for more details.
|
extern |
Return the precision of the time used by starpu_omp_get_wtime()
.
starpu_omp_get_wtime()
.See OpenMP Standard Functions in StarPU for more details.
|
extern |
Enable setting additional vector metadata needed by the OpenMP Runtime Support.
handle
is vector data handle. slice_base
is the base of an array slice, expressed in number of vector elements from the array base.
|
extern |
Only use internally by StarPU.
|
extern |
Register a handle for ptr->handle data lookup.
See Data Dependencies for more details.
|
extern |
Unregister a handle from ptr->handle data lookup.
See Data Dependencies for more details.
|
extern |
Return the handle corresponding to the data pointed to by the ptr
host pointer.
NULL
if not found.See Data Dependencies for more details.