statistics ctrl_recv_amount;
statistics ctrl_send_count;
statistics ctrl_recv_count;
+ statistics idle_duration;
+ statistics convergence;
}
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);
// Synchronization barrier...
// The goal is to circumvent a limitation in SimGrid (at least
#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[])
PR_STATS("Computation", comps);
PR_STATS("Comp. iterations", comp_iterations);
PR_STATS("X-Comp. iterations", all_comp_iterations);
+ PR_STATS("Idle duration", idle_duration);
PR_STATS("Data send amount", data_send_amount);
PR_STATS("Data recv amount", data_recv_amount);
PR_STATS("Data send count", data_send_count);
"percent of the load average");
PR_VALUE("Data transfer amount", "%g %s", transfer_amount,
"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/avg/dev)", "%g / %g / %g / %g",
+ convergence.get_min(), convergence.get_max(),
+ convergence.get_mean(), convergence.get_stddev());
XBT_INFO("`----");
}