lb_iter, comp_iter, real_load);
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);
}
int process::run()
void process::data_send(neighbor& nb)
{
double load_to_send;
- if (opt::bookkeeping) {
- double excess_load = real_load - expected_load;
- if (excess_load > 0.0) {
- load_to_send = compute_load_to_send(std::min(excess_load,
- nb.get_debt()));
- if (load_to_send > 0.0)
- nb.set_debt(nb.get_debt() - load_to_send);
- } else
- load_to_send = 0.0;
- } else {
+ if (opt::bookkeeping) { // bookkeeping
+ double excess_load;
+ if (opt::egocentric)
+ excess_load = std::max(0.0, real_load - expected_load);
+ else
+ excess_load = real_load;
+ load_to_send = compute_load_to_send(std::min(excess_load,
+ nb.get_debt()));
+ if (load_to_send > 0.0)
+ nb.set_debt(nb.get_debt() - load_to_send);
+ } else { // !bookkeeping
load_to_send = compute_load_to_send(nb.get_to_send());
if (load_to_send > 0.0)
nb.set_to_send(nb.get_to_send() - load_to_send);