From: Arnaud Giersch Date: Tue, 25 Jan 2011 09:26:29 +0000 (+0100) Subject: Rename process::load -> process::real_load. X-Git-Tag: v0.1~188^2~15 X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/commitdiff_plain/1bba96ae977208a57bd80c7011c2033435a64d44?ds=sidebyside Rename process::load -> process::real_load. --- diff --git a/main.cpp b/main.cpp index 3a47b92..ccd11bd 100644 --- a/main.cpp +++ b/main.cpp @@ -47,7 +47,7 @@ static int simulation_main(int argc, char* argv[]) proc = opt::loba_algorithms.new_instance(opt::loba_algo, argc, argv); result = proc->run(); comps.push(proc->get_comp()); - loads.push(proc->get_load()); + loads.push(proc->get_real_load()); delete proc; } catch (std::invalid_argument& e) { diff --git a/process.cpp b/process.cpp index cd11433..6d791bd 100644 --- a/process.cpp +++ b/process.cpp @@ -20,7 +20,7 @@ double process::total_load_exit = 0.0; process::process(int argc, char* argv[]) { - if (argc < 2 || !(std::istringstream(argv[1]) >> load)) + if (argc < 2 || !(std::istringstream(argv[1]) >> real_load)) throw std::invalid_argument("bad or missing initial load parameter"); neigh.assign(argv + 2, argv + argc); @@ -36,9 +36,9 @@ process::process(int argc, char* argv[]) comp = 0.0; prev_load_broadcast = -1; // force sending of load on first send_all() - expected_load = load; - total_load_running += load; - total_load_init += load; + expected_load = real_load; + total_load_running += real_load; + total_load_init += real_load; ctrl_close_pending = data_close_pending = neigh.size(); close_received = false; @@ -62,13 +62,13 @@ process::process(int argc, char* argv[]) process::~process() { - total_load_exit += load; + total_load_exit += real_load; if (opt::bookkeeping) { INFO4("Final load after %d:%d iterations: %g ; expected: %g", - lb_iter, comp_iter, load, expected_load); + lb_iter, comp_iter, real_load, expected_load); } else { INFO2("Final load after %d iterations: %g", - lb_iter, load); + lb_iter, real_load); if (lb_iter != comp_iter) WARN2("lb_iter (%d) and comp_iter (%d) differ!", lb_iter, comp_iter); @@ -79,7 +79,7 @@ process::~process() int process::run() { double next_iter_after_date = 0.0; - INFO1("Initial load: %g", load); + INFO1("Initial load: %g", real_load); VERB0("Starting..."); comp_iter = lb_iter = 0; while (true) { @@ -95,10 +95,10 @@ int process::run() if (opt::log_rate && lb_iter % opt::log_rate == 0) { if (opt::bookkeeping) INFO4("(%u:%u) current load: %g ; expected: %g", - lb_iter, comp_iter, load, expected_load); + lb_iter, comp_iter, real_load, expected_load); else INFO2("(%u) current load: %g", - lb_iter, load); + lb_iter, real_load); } ld -= load_balance(ld); @@ -109,7 +109,7 @@ int process::run() // send load information, and load (data) if any send_all(); - if (load > 0.0) { + if (real_load > 0.0) { ++comp_iter; compute(); } @@ -130,7 +130,7 @@ int process::run() // block on receiving unless there is something to compute or // to send double timeout; - if (load != 0 || lb_load() != prev_load_broadcast) + if (real_load != 0 || lb_load() != prev_load_broadcast) timeout = 0.0; else if (opt::min_iter_duration) timeout = opt::min_iter_duration; @@ -145,7 +145,7 @@ int process::run() } // have no load and cannot receive anything - if (load == 0.0 && !may_receive()) { + if (real_load == 0.0 && !may_receive()) { VERB0("I'm a poor lonesome process, and I have no load..."); break; } @@ -183,8 +183,8 @@ double process::load_balance(double /*my_load*/) void process::compute() { - if (load > 0.0) { - double flops = opt::comp_cost(load); + if (real_load > 0.0) { + double flops = opt::comp_cost(real_load); m_task_t task = MSG_task_create("computation", flops, 0.0, NULL); TRACE_msg_set_task_category(task, TRACE_CAT_COMP); DEBUG2("compute %g flop%s", flops, ESSE(flops)); @@ -198,8 +198,8 @@ void process::compute() void process::send1_no_bookkeeping(neighbor& nb) { - if (load != prev_load_broadcast) - comm.send(nb.get_ctrl_mbox(), new message(message::INFO, load)); + if (real_load != prev_load_broadcast) + comm.send(nb.get_ctrl_mbox(), new message(message::INFO, real_load)); double load_to_send = nb.get_to_send(); if (load_to_send > 0.0) { comm.send(nb.get_data_mbox(), new message(message::LOAD, load_to_send)); @@ -223,14 +223,14 @@ void process::send1_bookkeeping(neighbor& nb) } else { new_debt = nb.get_debt(); } - if (load <= new_debt) { - load_to_send = load; + if (real_load <= new_debt) { + load_to_send = real_load; nb.set_debt(new_debt - load_to_send); - load = 0.0; + real_load = 0.0; } else { load_to_send = new_debt; nb.set_debt(0.0); - load -= load_to_send; + real_load -= load_to_send; } if (load_to_send > 0.0) comm.send(nb.get_data_mbox(), new message(message::LOAD, load_to_send)); @@ -248,7 +248,7 @@ void process::send_all() } else { std::for_each(neigh.begin(), neigh.end(), bind(&process::send1_no_bookkeeping, this, _1)); - prev_load_broadcast = load; + prev_load_broadcast = real_load; } comm.flush(false); } @@ -271,7 +271,7 @@ void process::receive(double timeout) break; case message::LOAD: { double ld = msg->get_amount(); - load += ld; + real_load += ld; if (finalizing) total_load_running -= ld; break; @@ -303,7 +303,7 @@ void process::finalize() using std::tr1::placeholders::_1; finalizing = true; - total_load_running -= load; + total_load_running -= real_load; DEBUG2("send CLOSE to %lu neighbor%s", (unsigned long )neigh.size(), ESSE(neigh.size())); diff --git a/process.h b/process.h index 3978e3a..8f96fd8 100644 --- a/process.h +++ b/process.h @@ -28,7 +28,7 @@ public: virtual ~process(); double get_comp() const { return comp; } - double get_load() const { return load; } + double get_real_load() const { return real_load; } int run(); @@ -74,14 +74,14 @@ private: double prev_load_broadcast; // used to ensure that we do not send // a same information messages - double load; // current load + double real_load; // current load double expected_load; // expected load in bookkeeping mode - double& lb_load() { return opt::bookkeeping ? expected_load : load; } + double& lb_load() { return opt::bookkeeping ? expected_load : real_load; } // The load balancing algorithm comes here... // Parameter "my_load" is the load to take into account for myself - // (may be load or expected load). + // (may be real load or expected load). // Returns the total load sent to neighbors. virtual double load_balance(double my_load);