]> AND Private Git Repository - loba.git/commitdiff
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
Add all- (or X-) comp. iterations, counting empty iterations too.
authorArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Wed, 28 Sep 2011 09:56:01 +0000 (11:56 +0200)
committerArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Wed, 28 Sep 2011 09:56:01 +0000 (11:56 +0200)
main.cpp
process.cpp
process.h

index ea84f78d28f4396568d036d7d540ace6fa447374..6417250d128315df81fa935b377f40037ee0a1c1 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -29,7 +29,7 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(main);
 #include "tracing.h"
 #include "version.h"
 
-#define DATA_DESCR_WIDTH 37
+#define DATA_DESCR_WIDTH 39
 
 namespace {
     // Failure exit status
@@ -52,6 +52,7 @@ namespace {
     statistics loads;
     statistics comps;
     statistics comp_iterations;
+    statistics all_comp_iterations;
     statistics data_send_amount;
     statistics data_recv_amount;
     statistics data_send_count;
@@ -80,6 +81,7 @@ static int simulation_main(int argc, char* argv[])
         loads.push(proc->get_real_load());
         comps.push(proc->get_comp_amount());
         comp_iterations.push(proc->get_comp_iter());
+        all_comp_iterations.push(proc->get_all_comp_iter());
         data_send_amount.push(proc->get_data_send_amount());
         data_recv_amount.push(proc->get_data_recv_amount());
         data_send_count.push(proc->get_data_send_count());
@@ -174,7 +176,7 @@ static void install_signal_handler()
 
 #define PR_STATS(descr, st)                                             \
     XBT_INFO("| %.*s: %g / %g / %g", DATA_DESCR_WIDTH,                  \
-             descr " (total/avg./stddev)................................", \
+             descr " (total/avg./stddev).............................", \
              st.get_sum(), st.get_mean(), st.get_stddev())
 
 int main(int argc, char* argv[])
@@ -316,6 +318,7 @@ int main(int argc, char* argv[])
         PR_STATS("Load", loads);
         PR_STATS("Computation", comps);
         PR_STATS("Comp. iterations", comp_iterations);
+        PR_STATS("X-Comp. iterations", all_comp_iterations);
         PR_STATS("Data send amount", data_send_amount);
         PR_STATS("Data recv amount", data_recv_amount);
         PR_STATS("Data send count", data_send_count);
index 5d0f98bc5da9fa2532cec0cc0533414a325a146d..07372dc0515f763e8f16729d4437c6b94c55df5d 100644 (file)
@@ -64,7 +64,7 @@ process::process(int argc, char* argv[])
     close_received = false;
     finalizing = false;
 
-    comp_iter = lb_iter = 0;
+    all_comp_iter = comp_iter = lb_iter = 0;
 
     lb_thread = new_msg_thread("loba",
                                std::bind(&process::load_balance_loop, this));
@@ -93,8 +93,8 @@ process::~process()
                "received_load is %g, but should be 0.0 !", received_load);
     if (opt::log_rate < 0)
         return;
-    XBT_INFO("Final load after %d:%d iterations: %g",
-             lb_iter, comp_iter, real_load);
+    XBT_INFO("Final load after %d:%d:%d iterations: %g",
+             lb_iter, comp_iter, all_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);
@@ -144,7 +144,8 @@ void process::load_balance_loop()
         // nothing to do with opt::bookkeeping
 
         if (opt::log_rate && lb_iter % opt::log_rate == 0) {
-            XBT_INFO("(%u:%u) current load: %g", lb_iter, comp_iter, real_load);
+            XBT_INFO("(%u:%u:%u) current load: %g",
+                     lb_iter, comp_iter, all_comp_iter, real_load);
             XBT_VERB("... expected load: %g", expected_load);
         }
 
@@ -194,6 +195,7 @@ void process::compute_loop()
                       std::bind(&process::data_send, this, _1));
         mutex.release();
 
+        ++all_comp_iter;
         if (real_load == 0.0)
             continue;
 
index 275238cc670a2b773044591ea55360fdd43e5d6e..9ea0521ba08e5283f565e85d8e95ac046889a0b1 100644 (file)
--- a/process.h
+++ b/process.h
@@ -35,6 +35,7 @@ public:
     double get_real_load() const           { return real_load;            }
     double get_comp_amount() const         { return acc.comp_amount;      }
     unsigned get_comp_iter() const         { return comp_iter;            }
+    unsigned get_all_comp_iter() const     { return all_comp_iter;        }
     double get_data_send_amount() const    { return acc.data_send.amount; }
     double get_data_recv_amount() const    { return acc.data_recv.amount; }
     unsigned get_data_send_count() const   { return acc.data_send.count;  }
@@ -98,6 +99,8 @@ private:
 
     unsigned lb_iter;           // counter of load-balancing iterations
     unsigned comp_iter;         // counter of computation iterations
+    unsigned all_comp_iter;     // counter of computation iterations
+                                // (counting empty iterations too)
 
     double prev_load_broadcast; // used to ensure that we do not send
                                 // a same information messages