StarPU Handbook - StarPU Applications
sc_hypervisor_policy.h File Reference
#include <sc_hypervisor.h>

Go to the source code of this file.

Data Structures

struct  types_of_workers
 
struct  sc_hypervisor_policy_task_pool
 

Macros

#define HYPERVISOR_REDIM_SAMPLE
 
#define HYPERVISOR_START_REDIM_SAMPLE
 
#define SC_NOTHING
 
#define SC_IDLE
 
#define SC_SPEED
 

Functions

void sc_hypervisor_policy_add_task_to_pool (struct starpu_codelet *cl, unsigned sched_ctx, uint32_t footprint, struct sc_hypervisor_policy_task_pool **task_pools, size_t data_size)
 
void sc_hypervisor_policy_remove_task_from_pool (struct starpu_task *task, uint32_t footprint, struct sc_hypervisor_policy_task_pool **task_pools)
 
struct sc_hypervisor_policy_task_poolsc_hypervisor_policy_clone_task_pool (struct sc_hypervisor_policy_task_pool *tp)
 
void sc_hypervisor_get_tasks_times (int nw, int nt, double times[nw][nt], int *workers, unsigned size_ctxs, struct sc_hypervisor_policy_task_pool *task_pools)
 
unsigned sc_hypervisor_find_lowest_prio_sched_ctx (unsigned req_sched_ctx, int nworkers_to_move)
 
int * sc_hypervisor_get_idlest_workers (unsigned sched_ctx, int *nworkers, enum starpu_worker_archtype arch)
 
int * sc_hypervisor_get_idlest_workers_in_list (int *start, int *workers, int nall_workers, int *nworkers, enum starpu_worker_archtype arch)
 
int sc_hypervisor_get_movable_nworkers (struct sc_hypervisor_policy_config *config, unsigned sched_ctx, enum starpu_worker_archtype arch)
 
int sc_hypervisor_compute_nworkers_to_move (unsigned req_sched_ctx)
 
unsigned sc_hypervisor_policy_resize (unsigned sender_sched_ctx, unsigned receiver_sched_ctx, unsigned force_resize, unsigned now)
 
unsigned sc_hypervisor_policy_resize_to_unknown_receiver (unsigned sender_sched_ctx, unsigned now)
 
double sc_hypervisor_get_ctx_speed (struct sc_hypervisor_wrapper *sc_w)
 
double sc_hypervisor_get_slowest_ctx_exec_time (void)
 
double sc_hypervisor_get_fastest_ctx_exec_time (void)
 
double sc_hypervisor_get_speed_per_worker (struct sc_hypervisor_wrapper *sc_w, unsigned worker)
 
double sc_hypervisor_get_speed_per_worker_type (struct sc_hypervisor_wrapper *sc_w, enum starpu_worker_archtype arch)
 
double sc_hypervisor_get_ref_speed_per_worker_type (struct sc_hypervisor_wrapper *sc_w, enum starpu_worker_archtype arch)
 
double sc_hypervisor_get_avg_speed (enum starpu_worker_archtype arch)
 
void sc_hypervisor_check_if_consider_max (struct types_of_workers *tw)
 
void sc_hypervisor_group_workers_by_type (struct types_of_workers *tw, int *total_nw)
 
enum starpu_worker_archtype sc_hypervisor_get_arch_for_index (unsigned w, struct types_of_workers *tw)
 
unsigned sc_hypervisor_get_index_for_arch (enum starpu_worker_archtype arch, struct types_of_workers *tw)
 
unsigned sc_hypervisor_criteria_fulfilled (unsigned sched_ctx, int worker)
 
unsigned sc_hypervisor_check_idle (unsigned sched_ctx, int worker)
 
unsigned sc_hypervisor_check_speed_gap_btw_ctxs (unsigned *sched_ctxs, int nsched_ctxs, int *workers, int nworkers)
 
unsigned sc_hypervisor_check_speed_gap_btw_ctxs_on_level (int level, int *workers_in, int nworkers_in, unsigned father_sched_ctx_id, unsigned **sched_ctxs, int *nsched_ctxs)
 
unsigned sc_hypervisor_get_resize_criteria (void)
 
struct types_of_workerssc_hypervisor_get_types_of_workers (int *workers, unsigned nworkers)