Skip to content
Snippets Groups Projects
Commit 21442983 authored by jgatt's avatar jgatt
Browse files

separated enum for mono_core and multi_core on yellow_window

parent 61b76c53
No related branches found
No related tags found
1 merge request!20merge requested multibehavor_mono_multi_core
Pipeline #5896 passed
......@@ -63,10 +63,10 @@ void DMUserMultiBehavior::init_prob_mono_core(const rapidjson::Value &param,std:
// Yellow probability Initialization
std::vector<string> yellow_config (Y_TOTAL,"");
yellow_config[Y_DEGRAD] = "yellow_prob_degrad_mono_core";
yellow_config[Y_RECONFIG] = "yellow_prob_reconfig_mono_core";
yellow_config[Y_RIGID] = "yellow_prob_rigid_mono_core";
std::vector<string> yellow_config (Y_TOTAL_MONO,"");
yellow_config[Y_DEGRAD_MONO] = "yellow_prob_degrad_mono_core";
yellow_config[Y_RECONFIG_MONO] = "yellow_prob_reconfig_mono_core";
yellow_config[Y_RIGID_MONO] = "yellow_prob_rigid_mono_core";
yellow_prob_total= parse_proba_param(param,yellow_config,yellow_prob_array);
error_message = "Error in parameter defined for user ";
error_message += user_name;
......@@ -101,10 +101,10 @@ void DMUserMultiBehavior::init_prob_multi_core(const rapidjson::Value &param,std
// Yellow probability Initialization
std::vector<string> yellow_config (Y_TOTAL,"");
yellow_config[Y_DEGRAD] = "yellow_prob_degrad_multi_core";
yellow_config[Y_RECONFIG] = "yellow_prob_reconfig_multi_core";
yellow_config[Y_RIGID] = "yellow_prob_rigid_multi_core";
std::vector<string> yellow_config (Y_TOTAL_MULTI,"");
yellow_config[Y_DEGRAD_MULTI] = "yellow_prob_degrad_multi_core";
yellow_config[Y_RECONFIG_MULTI] = "yellow_prob_reconfig_multi_core";
yellow_config[Y_RIGID_MULTI] = "yellow_prob_rigid_multi_core";
yellow_prob_total= parse_proba_param(param,yellow_config,yellow_prob_array);
//We set the probability either by reading json data or by drawing it randomly
error_message = "Error in parameter defined for user ";
......@@ -129,8 +129,8 @@ DMUserMultiBehavior::DMUserMultiBehavior(
random_gen = std::mt19937(random_seed);
red_prob_multi_core= vector<double> (R_TOTAL_MULTI,0.0);
red_prob_mono_core = vector<double> (R_TOTAL_MONO,0.0);
yellow_prob_mono_core = vector<double> (Y_TOTAL,0.0);
yellow_prob_multi_core = vector<double> (Y_TOTAL,0.0);
yellow_prob_mono_core = vector<double> (Y_TOTAL_MONO,0.0);
yellow_prob_multi_core = vector<double> (Y_TOTAL_MULTI,0.0);
init_prob_mono_core(param,red_prob_mono_core,yellow_prob_mono_core);
init_prob_multi_core(param,red_prob_multi_core,yellow_prob_multi_core);
}
......@@ -289,13 +289,13 @@ bool DMUserMultiBehavior::yellow_window_behavior_mono_core(shared_ptr<Job> job,
{
double behavior = distribution(random_gen)*yellow_prob_total;
double total_probability = 0.0;
total_probability+= yellow_prob_mono_core[Y_RECONFIG];
total_probability+= yellow_prob_mono_core[Y_RECONFIG_MONO];
if (behavior < total_probability){
log_behavior(job,"consider_reconfig",0);
log_behavior(job,"rigid",0);
return reconfig_job(job,profile);
}
total_probability += yellow_prob_mono_core[Y_DEGRAD];
total_probability += yellow_prob_mono_core[Y_DEGRAD_MONO];
if (behavior < total_probability){
return degrad_time_job(job,profile);
}
......@@ -306,13 +306,13 @@ bool DMUserMultiBehavior::yellow_window_behavior_multi_core(shared_ptr<Job> job,
{
double behavior = distribution(random_gen)*yellow_prob_total;
double total_probability = 0.0;
total_probability+= yellow_prob_multi_core[Y_RECONFIG];
total_probability+= yellow_prob_multi_core[Y_RECONFIG_MULTI];
if (behavior < total_probability){
log_behavior(job,"consider_reconfig",0);
log_behavior(job, "reconfig", 0);
return reconfig_job(job,profile);
}
total_probability += yellow_prob_multi_core[Y_DEGRAD];
total_probability += yellow_prob_multi_core[Y_DEGRAD_MULTI];
if (behavior < total_probability){
log_behavior(job,"consider_degrad",0);
log_behavior(job, "degrad", 0);
......
......@@ -54,7 +54,8 @@ protected:
R_RECONFIG_MULTI,R_RIGID_MULTI,R_TOTAL_MULTI};
enum red_behavior_mono {R_RENONCE_MONO,R_C_YOU_LATER_MONO,R_DEGRAD_MONO,
R_RECONFIG_MONO,R_RIGID_MONO,R_TOTAL_MONO};
enum yellow_behavior {Y_DEGRAD,Y_RECONFIG,Y_RIGID,Y_TOTAL};
enum yellow_behavior_multi {Y_DEGRAD_MULTI,Y_RECONFIG_MULTI,Y_RIGID_MULTI,Y_TOTAL_MULTI};
enum yellow_behavior_mono {Y_DEGRAD_MONO,Y_RECONFIG_MONO,Y_RIGID_MONO,Y_TOTAL_MONO};
DMWindow_list *yellow_windows;
DMWindow_list * red_windows;
std::mt19937 random_gen;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment