StarPU Internal Handbook
Loading...
Searching...
No Matches
openmp_runtime_support.h File Reference
#include <starpu.h>
#include <common/list.h>
#include <common/starpu_spinlock.h>
#include <common/uthash.h>
#include <ucontext.h>

Go to the source code of this file.

Data Structures

struct  starpu_omp_numeric_place
 
struct  starpu_omp_place
 
struct  starpu_omp_data_environment_icvs
 
struct  starpu_omp_device_icvs
 
struct  starpu_omp_implicit_task_icvs
 
struct  starpu_omp_global_icvs
 
struct  starpu_omp_initial_icv_values
 
struct  starpu_omp_task_group
 
struct  starpu_omp_condition
 
struct  starpu_omp_critical
 

Macros

#define _XOPEN_SOURCE
 
#define STARPU_OMP_MAX_ACTIVE_LEVELS
 

Enumerations

enum  starpu_omp_place_name {
  starpu_omp_place_undefined , starpu_omp_place_threads , starpu_omp_place_cores , starpu_omp_place_sockets ,
  starpu_omp_place_numerical
}
 
enum  starpu_omp_task_state {
  starpu_omp_task_state_clear , starpu_omp_task_state_preempted , starpu_omp_task_state_terminated , starpu_omp_task_state_zombie ,
  starpu_omp_task_state_target
}
 
enum  starpu_omp_task_wait_on {
  starpu_omp_task_wait_on_task_childs , starpu_omp_task_wait_on_region_tasks , starpu_omp_task_wait_on_barrier , starpu_omp_task_wait_on_group ,
  starpu_omp_task_wait_on_critical , starpu_omp_task_wait_on_ordered , starpu_omp_task_wait_on_lock , starpu_omp_task_wait_on_nest_lock
}
 
enum  starpu_omp_task_flags { STARPU_OMP_TASK_FLAGS_IMPLICIT , STARPU_OMP_TASK_FLAGS_UNDEFERRED , STARPU_OMP_TASK_FLAGS_FINAL , STARPU_OMP_TASK_FLAGS_UNTIED }
 

Variables

starpu_pthread_key_t omp_thread_key
 
starpu_pthread_key_t omp_task_key
 

Data Structure Documentation

◆ starpu_omp_numeric_place

struct starpu_omp_numeric_place
Data Fields
int excluded_place
int * included_numeric_items
int nb_included_numeric_items
int * excluded_numeric_items
int nb_excluded_numeric_items

◆ starpu_omp_place

struct starpu_omp_place

OpenMP place for thread affinity, defined by the OpenMP spec

Data Fields
int abstract_name
int abstract_excluded
int abstract_length
struct starpu_omp_numeric_place * numeric_places
int nb_numeric_places

◆ starpu_omp_data_environment_icvs

struct starpu_omp_data_environment_icvs

Internal Control Variables (ICVs) declared following OpenMP 4.0.0 spec section 2.3.1

Data Fields
int dyn_var

parallel region icvs

int nest_var
int * nthreads_var
int thread_limit_var

nthreads_var ICV is a list

int active_levels_var
int levels_var
int * bind_var
int run_sched_var

bind_var ICV is a list loop region icvs

unsigned long long run_sched_chunk_var
int default_device_var

program execution icvs

int max_task_priority_var

◆ starpu_omp_device_icvs

struct starpu_omp_device_icvs
Data Fields
int max_active_levels_var

parallel region icvs

int def_sched_var

loop region icvs

unsigned long long def_sched_chunk_var
int stacksize_var

program execution icvs

int wait_policy_var

◆ starpu_omp_implicit_task_icvs

struct starpu_omp_implicit_task_icvs
Data Fields
int place_partition_var

parallel region icvs

◆ starpu_omp_global_icvs

struct starpu_omp_global_icvs
Data Fields
int cancel_var

program execution icvs

◆ starpu_omp_initial_icv_values

struct starpu_omp_initial_icv_values
Data Fields
int dyn_var
int nest_var
int * nthreads_var
int run_sched_var
unsigned long long run_sched_chunk_var
int def_sched_var
unsigned long long def_sched_chunk_var
int * bind_var
int stacksize_var
int wait_policy_var
int thread_limit_var
int max_active_levels_var
int active_levels_var
int levels_var
int place_partition_var
int cancel_var
int default_device_var
int max_task_priority_var
struct starpu_omp_place places

not a real ICV, but needed to store the contents of OMP_PLACES

◆ starpu_omp_task_group

struct starpu_omp_task_group
Data Fields
int descendent_task_count
struct starpu_omp_task * leader_task
struct starpu_omp_task_group * p_previous_task_group

◆ starpu_omp_task_link

struct starpu_omp_task_link
Data Fields
struct starpu_omp_task * task
struct starpu_omp_task_link * next

◆ starpu_omp_condition

struct starpu_omp_condition
Data Fields
struct starpu_omp_task_link * contention_list_head

◆ starpu_omp_critical

struct starpu_omp_critical
Data Fields
UT_hash_handle hh
struct _starpu_spinlock lock
unsigned state
struct starpu_omp_task_link * contention_list_head
const char * name

Macro Definition Documentation

◆ _XOPEN_SOURCE

#define _XOPEN_SOURCE

ucontexts have been deprecated as of POSIX 1-2004 _XOPEN_SOURCE required at least on OS/X

TODO: add detection in configure.ac

◆ STARPU_OMP_MAX_ACTIVE_LEVELS

#define STARPU_OMP_MAX_ACTIVE_LEVELS

Arbitrary limit on the number of nested parallel sections

Enumeration Type Documentation

◆ starpu_omp_place_name

Possible abstract names for OpenMP places

◆ starpu_omp_task_state

Enumerator
starpu_omp_task_state_target 

target tasks are non-preemptible tasks, without dedicated stack and OpenMP Runtime Support context