X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/blobdiff_plain/3cd6600dbcb87137c7adde8e4e310aefaea2a2e7..09d41417e496c5599b00a615f4b3d67b0f6270f3:/main.cpp diff --git a/main.cpp b/main.cpp index a682dfd..011b258 100644 --- a/main.cpp +++ b/main.cpp @@ -53,6 +53,7 @@ namespace { statistics comps; statistics comp_iterations; statistics all_comp_iterations; + statistics iter_deviation; statistics data_send_amount; statistics data_recv_amount; statistics data_send_count; @@ -61,6 +62,7 @@ namespace { statistics ctrl_recv_amount; statistics ctrl_send_count; statistics ctrl_recv_count; + statistics idle_duration; statistics convergence; } @@ -83,6 +85,7 @@ static int simulation_main(int argc, char* argv[]) comps.push(proc->get_comp_amount()); comp_iterations.push(proc->get_comp_iter()); all_comp_iterations.push(proc->get_all_comp_iter()); + iter_deviation.push(proc->get_iter_deviation()); 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()); @@ -91,6 +94,7 @@ static int simulation_main(int argc, char* argv[]) ctrl_recv_amount.push(proc->get_ctrl_recv_amount()); ctrl_send_count.push(proc->get_ctrl_send_count()); ctrl_recv_count.push(proc->get_ctrl_recv_count()); + idle_duration.push(proc->get_idle_duration()); double c = proc->get_convergence(); if (c != -1.0) convergence.push(c); @@ -185,14 +189,15 @@ static void install_signal_handler() #define PR_STATS(descr, st) \ XBT_INFO("| %.*s: %g / %g / %g", DATA_DESCR_WIDTH, \ - descr " (total/avg./stddev).............................", \ + descr " (sum/avg/dev)...................................", \ st.get_sum(), st.get_mean(), st.get_stddev()) int main(int argc, char* argv[]) { - // Note: variables used after THROW must be declared as volatile. - volatile int exit_status = 0; // global exit status - volatile double simulated_time = -1.0; + // Note: variables modified between TRY (setjmp) and THROW (longjmp) + // must be declared as static or volatile. + static int exit_status = 0; // global exit status + static double simulated_time = -1.0; timestamp elapsed_time(timestamp::wallclock_time); timestamp simulation_time(timestamp::cpu_time); xbt_ex_t ex; @@ -353,8 +358,11 @@ int main(int argc, char* argv[]) "times the total amount of data"); PR_VALUE("Number of hosts that converged", "%u / %u", convergence.get_count(), loads.get_count()); - PR_VALUE("Times of convergence (min/max)", "%g / %g", - convergence.get_min(), convergence.get_max()); + PR_VALUE("Times of convergence (min/max/avg/dev)", "%g / %g / %g / %g", + convergence.get_min(), convergence.get_max(), + convergence.get_mean(), convergence.get_stddev()); + PR_STATS("Idle duration", idle_duration); + PR_STATS("Supernumer. comp. iter.", iter_deviation); XBT_INFO("`----"); }