|
StarPU Internal Handbook
|
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 |
| 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