StarPU Internal Handbook
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
_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

unsigned _starpu_sched_ctx::id

id of the context used in user mode

unsigned _starpu_sched_ctx::do_schedule

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

const char* _starpu_sched_ctx::name

name of context

struct starpu_sched_policy* _starpu_sched_ctx::sched_policy

policy of the context

void* _starpu_sched_ctx::policy_data

data necessary for the policy

void* _starpu_sched_ctx::user_data

pointer for application use

unsigned _starpu_sched_ctx::is_initial_sched

we keep an initial sched which we never delete

struct _starpu_barrier_counter _starpu_sched_ctx::tasks_barrier

wait for the tasks submitted to the context to be executed

struct _starpu_barrier_counter _starpu_sched_ctx::ready_tasks_barrier

wait for the tasks ready of the context to be executed

double _starpu_sched_ctx::ready_flops

amount of ready flops in a context

long _starpu_sched_ctx::iterations[2]

Iteration number, as advertised by application

int _starpu_sched_ctx::min_ncpus

min CPUs to execute

int _starpu_sched_ctx::max_ncpus

max CPUs to execute

int _starpu_sched_ctx::min_ngpus

min GPUs to execute

int _starpu_sched_ctx::max_ngpus

max GPUs to execute

unsigned _starpu_sched_ctx::inheritor

in case we delete the context leave resources to the inheritor

unsigned _starpu_sched_ctx::finished_submit

indicates whether the application finished submitting tasks to this context

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_bitmap_t _starpu_sched_ctx::hwloc_workers_set

hwloc tree structure of workers

struct starpu_sched_ctx_performance_counters* _starpu_sched_ctx::perf_counters

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

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

callback called when the context finished executed its submitted tasks

unsigned _starpu_sched_ctx::hierarchy_level

value placing the contexts in their hierarchy

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

unsigned _starpu_sched_ctx::nesting_sched_ctx

ctx nesting the current ctx

struct starpu_perfmodel_arch _starpu_sched_ctx::perf_arch

perf model for the device comb of the ctx

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.

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

void(* _starpu_sched_ctx::init_sched)(unsigned)

function called when initializing the scheduler

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: