X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/blobdiff_plain/154e14a116d8937ffbab194594ba2b744fcc4330..29d6013f6a85f43d958add37f8317cf038cf335b:/process.cpp diff --git a/process.cpp b/process.cpp index 03c1734..cd11433 100644 --- a/process.cpp +++ b/process.cpp @@ -1,7 +1,6 @@ #include #include #include -#include #include #include #include @@ -36,7 +35,7 @@ process::process(int argc, char* argv[]) comp = 0.0; - prev_load_broadcast = -1; // force sending of load on first send() + prev_load_broadcast = -1; // force sending of load on first send_all() expected_load = load; total_load_running += load; total_load_init += load; @@ -64,6 +63,17 @@ process::process(int argc, char* argv[]) process::~process() { total_load_exit += load; + if (opt::bookkeeping) { + INFO4("Final load after %d:%d iterations: %g ; expected: %g", + lb_iter, comp_iter, load, expected_load); + } else { + INFO2("Final load after %d iterations: %g", + lb_iter, load); + if (lb_iter != comp_iter) + WARN2("lb_iter (%d) and comp_iter (%d) differ!", + lb_iter, comp_iter); + } + VERB1("Total computation for this process: %g", comp); } int process::run() @@ -98,7 +108,7 @@ int process::run() lb_load() = ld; // send load information, and load (data) if any - send(); + send_all(); if (load > 0.0) { ++comp_iter; compute(); @@ -161,30 +171,9 @@ int process::run() */ VERB0("Done."); - if (opt::bookkeeping) { - INFO4("Final load after %d:%d iterations: %g ; expected: %g", - lb_iter, comp_iter, load, expected_load); - } else { - INFO2("Final load after %d iterations: %g", - lb_iter, load); - if (lb_iter != comp_iter) - WARN2("lb_iter (%d) and comp_iter (%d) differ!", - lb_iter, comp_iter); - } return 0; } -double process::sum_of_to_send() const -{ - using std::tr1::bind; - using std::tr1::placeholders::_1; - using std::tr1::placeholders::_2; - - return std::accumulate(neigh.begin(), neigh.end(), 0.0, - bind(std::plus(), - _1, bind(&neighbor::get_to_send, _2))); -} - double process::load_balance(double /*my_load*/) { if (lb_iter == 1) // warn only once @@ -247,7 +236,7 @@ void process::send1_bookkeeping(neighbor& nb) comm.send(nb.get_data_mbox(), new message(message::LOAD, load_to_send)); } -void process::send() +void process::send_all() { using std::tr1::bind; using std::tr1::placeholders::_1;