17 #ifndef SC_HYPERVISOR_LP_H
18 #define SC_HYPERVISOR_LP_H
31 #ifdef STARPU_HAVE_GLPK_H
33 #endif //STARPU_HAVE_GLPK_H
38 double sc_hypervisor_lp_get_nworkers_per_ctx(
int nsched_ctxs,
int ntypes_of_workers,
double res[nsched_ctxs][ntypes_of_workers],
39 int total_nw[ntypes_of_workers],
struct types_of_workers *tw,
unsigned *in_sched_ctxs);
42 double sc_hypervisor_lp_get_tmax(
int nw,
int *workers);
45 void sc_hypervisor_lp_round_double_to_int(
int ns,
int nw,
double res[ns][nw],
int res_rounded[ns][nw]);
48 void sc_hypervisor_lp_redistribute_resources_in_ctxs(
int ns,
int nw,
int res_rounded[ns][nw],
double res[ns][nw],
unsigned *sched_ctxs,
struct types_of_workers *tw);
51 void sc_hypervisor_lp_distribute_resources_in_ctxs(
unsigned* sched_ctxs,
int ns,
int nw,
int res_rounded[ns][nw],
double res[ns][nw],
int *workers,
int nworkers,
struct types_of_workers *tw);
54 void sc_hypervisor_lp_distribute_floating_no_resources_in_ctxs(
unsigned* sched_ctxs,
int ns,
int nw,
double res[ns][nw],
int *workers,
int nworkers,
struct types_of_workers *tw);
57 void sc_hypervisor_lp_place_resources_in_ctx(
int ns,
int nw,
double w_in_s[ns][nw],
unsigned *sched_ctxs,
int *workers,
unsigned do_size,
struct types_of_workers *tw);
60 void sc_hypervisor_lp_share_remaining_resources(
int ns,
unsigned *sched_ctxs,
int nworkers,
int *workers);
63 double sc_hypervisor_lp_find_tmax(
double t1,
double t2);
66 unsigned sc_hypervisor_lp_execute_dichotomy(
int ns,
int nw,
double w_in_s[ns][nw],
unsigned solve_lp_integer,
void *specific_data,
67 double tmin,
double tmax,
double smallest_tmax,
68 double (*lp_estimated_distrib_func)(
int ns,
int nw,
double draft_w_in_s[ns][nw],
69 unsigned is_integer,
double tmax,
void *specifc_data));
71 #ifdef STARPU_HAVE_GLPK_H
74 double sc_hypervisor_lp_simulate_distrib_flops(
int nsched_ctxs,
int ntypes_of_workers,
double speed[nsched_ctxs][ntypes_of_workers],
75 double flops[nsched_ctxs],
double res[nsched_ctxs][ntypes_of_workers],
int total_nw[ntypes_of_workers],
76 unsigned sched_ctxs[nsched_ctxs],
double vmax);
79 double sc_hypervisor_lp_simulate_distrib_tasks(
int ns,
int nw,
int nt,
double w_in_s[ns][nw],
double tasks[nw][nt],
80 double times[nw][nt],
unsigned is_integer,
double tmax,
unsigned *in_sched_ctxs,
85 double sc_hypervisor_lp_simulate_distrib_flops_on_sample(
int ns,
int nw,
double final_w_in_s[ns][nw],
unsigned is_integer,
double tmax,
86 double **speed,
double flops[ns],
double **final_flops_on_w);
87 #endif // STARPU_HAVE_GLPK_H
Definition: sc_hypervisor_policy.h:41
Definition: sc_hypervisor_policy.h:34