StarPU Internal Handbook

Data Fields
_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:

- sched_ctx.h