StarPU Handbook - StarPU Language Bindings
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_wrappersc_hypervisor_get_wrapper (unsigned sched_ctx)
 
unsigned * sc_hypervisor_get_sched_ctxs (void)
 
int sc_hypervisor_get_nsched_ctxs (void)
 
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