StarPU Internal Handbook
_starpu_sched_ctx Struct Reference

Data Fields

unsigned id
 
unsigned do_schedule
 
const char * name
 
struct starpu_sched_policy * sched_policy
 
void * policy_data
 
void * user_data
 
struct starpu_worker_collection * workers
 
unsigned is_initial_sched
 
struct _starpu_barrier_counter tasks_barrier
 
struct _starpu_barrier_counter ready_tasks_barrier
 
double ready_flops
 
long iterations [2]
 
int iteration_level
 
struct starpu_task_list empty_ctx_tasks
 
struct starpu_task_list waiting_tasks
 
int min_ncpus
 
int max_ncpus
 
int min_ngpus
 
int max_ngpus
 
unsigned inheritor
 
unsigned finished_submit
 
int min_priority
 
int max_priority
 
int min_priority_is_set
 
int max_priority_is_set
 
hwloc_bitmap_t hwloc_workers_set
 
struct starpu_sched_ctx_performance_counters * perf_counters
 
void(* close_callback )(unsigned sched_ctx_id, void *args)
 
void * close_args
 
unsigned hierarchy_level
 
int main_master
 
unsigned nesting_sched_ctx
 
struct starpu_perfmodel_arch perf_arch
 
unsigned parallel_view
 
unsigned awake_workers
 
void(* init_sched )(unsigned)
 
int sub_ctxs [STARPU_NMAXWORKERS]
 
int nsub_ctxs
 
int nsms
 
int sms_start_idx
 
int sms_end_idx
 
int stream_worker
 
starpu_pthread_rwlock_t rwlock
 
starpu_pthread_t lock_write_owner
 

Field Documentation

◆ id

unsigned _starpu_sched_ctx::id

id of the context used in user mode

◆ do_schedule

unsigned _starpu_sched_ctx::do_schedule

boolean indicating whether the scheduling_ctx will be considered for scheduling (1) or not (0)

◆ name

const char* _starpu_sched_ctx::name

name of context

◆ sched_policy

struct starpu_sched_policy* _starpu_sched_ctx::sched_policy

policy of the context

◆ policy_data

void* _starpu_sched_ctx::policy_data

data necessary for the policy

◆ user_data

void* _starpu_sched_ctx::user_data

pointer for application use

◆ is_initial_sched

unsigned _starpu_sched_ctx::is_initial_sched

we keep an initial sched which we never delete

◆ tasks_barrier

struct _starpu_barrier_counter _starpu_sched_ctx::tasks_barrier

wait for the tasks submitted to the context to be executed

◆ ready_tasks_barrier

struct _starpu_barrier_counter _starpu_sched_ctx::ready_tasks_barrier

wait for the tasks ready of the context to be executed

◆ ready_flops

double _starpu_sched_ctx::ready_flops

amount of ready flops in a context

◆ iterations

long _starpu_sched_ctx::iterations[2]

Iteration number, as advertised by application

◆ min_ncpus

int _starpu_sched_ctx::min_ncpus

min CPUs to execute

◆ max_ncpus

int _starpu_sched_ctx::max_ncpus

max CPUs to execute

◆ min_ngpus

int _starpu_sched_ctx::min_ngpus

min GPUs to execute

◆ max_ngpus

int _starpu_sched_ctx::max_ngpus

max GPUs to execute

◆ inheritor

unsigned _starpu_sched_ctx::inheritor

in case we delete the context leave resources to the inheritor

◆ finished_submit

unsigned _starpu_sched_ctx::finished_submit

indicates whether the application finished submitting tasks to this context

◆ min_priority

int _starpu_sched_ctx::min_priority

By default we have a binary type of priority: either a task is a priority task (level 1) or it is not (level 0).

◆ hwloc_workers_set

hwloc_bitmap_t _starpu_sched_ctx::hwloc_workers_set

hwloc tree structure of workers

◆ perf_counters

struct starpu_sched_ctx_performance_counters* _starpu_sched_ctx::perf_counters

a structure containing a series of performance counters determining the resize procedure

◆ close_callback

void(* _starpu_sched_ctx::close_callback) (unsigned sched_ctx_id, void *args)

callback called when the context finished executed its submitted tasks

◆ hierarchy_level

unsigned _starpu_sched_ctx::hierarchy_level

value placing the contexts in their hierarchy

◆ main_master

int _starpu_sched_ctx::main_master

if we execute non-StarPU code inside the context we have a single master worker that stays awake, if not master is -1

◆ nesting_sched_ctx

unsigned _starpu_sched_ctx::nesting_sched_ctx

ctx nesting the current ctx

◆ perf_arch

struct starpu_perfmodel_arch _starpu_sched_ctx::perf_arch

perf model for the device comb of the ctx

◆ parallel_view

unsigned _starpu_sched_ctx::parallel_view

For parallel workers, say whether it is viewed as sequential or not. This is a helper for the prologue code.

◆ awake_workers

unsigned _starpu_sched_ctx::awake_workers

for ctxs without policy: flag to indicate that we want to get the threads to sleep in order to replace them with other threads or leave them awake & use them in the parallel code

◆ init_sched

void(* _starpu_sched_ctx::init_sched) (unsigned)

function called when initializing the scheduler

◆ nsms

int _starpu_sched_ctx::nsms

nr of SMs assigned to this ctx if we partition gpus


The documentation for this struct was generated from the following file: