int process::process_counter = 0;
double process::total_load_average;
+double process::average_load_ratio;
double process::load_diff_threshold;
std::atomic<int> process::convergence_counter(0);
total_load_init += real_load;
total_load_running += real_load;
total_load_average = total_load_running / process_counter;
+ if (opt::avg_load_ratio >= 0.0)
+ average_load_ratio = opt::avg_load_ratio;
+ else
+ average_load_ratio = 100.0 *
+ (process_counter / -opt::avg_load_ratio) / total_load_average;
load_diff_threshold = (opt::load_ratio_threshold +
- opt::avg_load_ratio * total_load_average) / 100.0;
+ average_load_ratio * total_load_average) / 100.0;
proc_mutex->release();
ctrl_close_pending = data_close_pending = neigh.size();
lb_iter, comp_iter, all_comp_iter, real_load);
if (convergence >= 0.0)
XBT_INFO("Convergence within %g%% was achieved at time %g",
- opt::avg_load_ratio, convergence);
+ average_load_ratio, convergence);
else
XBT_INFO("Convergence within %g%% was not achieved",
- opt::avg_load_ratio);
+ average_load_ratio);
XBT_VERB("Expected load was: %g", expected_load);
XBT_VERB("Total computation for this process: %g", get_comp_amount());
print_loads(true, xbt_log_priority_debug);