sc_hypervisor_monitoring.h File Reference
`#include <sc_hypervisor.h>`

Go to the source code of this file.

## Data Structures

struct | sc_hypervisor_resize_ack
struct | sc_hypervisor_wrapper

## Functions

struct sc_hypervisor_wrapper * | sc_hypervisor_get_wrapper (unsigned sched_ctx)
unsigned * | sc_hypervisor_get_sched_ctxs ()
int | sc_hypervisor_get_nsched_ctxs ()
int | sc_hypervisor_get_nworkers_ctx (unsigned sched_ctx, enum starpu_worker_archtype arch)
double | sc_hypervisor_get_elapsed_flops_per_sched_ctx (struct sc_hypervisor_wrapper *sc_w)
double | sc_hypervisor_get_total_elapsed_flops_per_sched_ctx (struct sc_hypervisor_wrapper *sc_w)
double | sc_hypervisorsc_hypervisor_get_speed_per_worker_type (struct sc_hypervisor_wrapper *sc_w, enum starpu_worker_archtype arch)
double | sc_hypervisor_get_speed (struct sc_hypervisor_wrapper *sc_w, enum starpu_worker_archtype arch)

## Data Structure Documentation

## sc_hypervisor_wrapper

struct sc_hypervisor_wrapper

Wrapper of the contexts available in StarPU which contains all information about a context obtained by incrementing the performance counters. it is attached to a sched_ctx storing monitoring information

Data Fields
unsigned | sched_ctx | the monitored context
struct sc_hypervisor_policy_config * | config | The corresponding resize configuration
double | start_time_w[STARPU_NMAXWORKERS] | the start time of the resizing sample of the workers of this context
double | current_idle_time[STARPU_NMAXWORKERS] | The idle time counter of each worker of the context
double | idle_time[STARPU_NMAXWORKERS] | The time the workers were idle from the last resize
double | idle_start_time[STARPU_NMAXWORKERS] | The moment when the workers started being idle
double | exec_time[STARPU_NMAXWORKERS] | Time during which the worker executed tasks
double | exec_start_time[STARPU_NMAXWORKERS] | Time when the worker started executing a task
int | worker_to_be_removed[STARPU_NMAXWORKERS] | List of workers that will leave the context (lazy resizing process)
int | pushed_tasks[STARPU_NMAXWORKERS] | Number of tasks pushed on each worker in this context
int | poped_tasks[STARPU_NMAXWORKERS] | Number of tasks poped from each worker in this context
double | total_flops | The total number of flops to execute by the context
double | total_elapsed_flops[STARPU_NMAXWORKERS] | The number of flops executed by each workers of the context
double | elapsed_flops[STARPU_NMAXWORKERS] | number of flops executed since last resizing
size_t | elapsed_data[STARPU_NMAXWORKERS] | Quantity of data (in bytes) used to execute tasks on each worker in this context
int | elapsed_tasks[STARPU_NMAXWORKERS] | Number of tasks executed on each worker in this context
double | ref_speed[2] | the average speed of the type of workers when they belonged to this context 0 - cuda 1 - cpu
double | submitted_flops | Number of flops submitted to this context
double | remaining_flops | Number of flops that still have to be executed by the workers in this context
double | start_time | Start time of the resizing sample of this context
double | real_start_time | First time a task was pushed to this context
double | hyp_react_start_time | Start time for sample in which the hypervisor is not allowed to react bc too expensive
struct sc_hypervisor_resize_ack | resize_ack | Structure confirming the last resize finished and a new one can be done. Workers do not leave the current context until the receiver context does not ack the receive of these workers
starpu_pthread_mutex_t | mutex | Mutex needed to synchronize the acknowledgment of the workers into the receiver context
unsigned | total_flops_available | Boolean indicating if the hypervisor can use the flops corresponding to the entire execution of the context
unsigned | to_be_sized | boolean indicating that a context is being sized
unsigned | compute_idle[STARPU_NMAXWORKERS] | Boolean indicating if we add the idle of this worker to the idle of the context
unsigned | compute_partial_idle[STARPU_NMAXWORKERS] | Boolean indicating if we add the entiere idle of this worker to the idle of the context or just half
unsigned | consider_max | consider the max in the lp