#include <cerrno>
+#include <cmath>
#include <csignal>
#include <cstring> // strchr
#include <iostream>
statistics loads;
statistics comps;
+ statistics comp_iterations;
statistics data_send_amount;
statistics data_recv_amount;
statistics data_send_count;
proc_mutex->acquire();
loads.push(proc->get_real_load());
comps.push(proc->get_comp_amount());
+ comp_iterations.push(proc->get_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());
opt::auto_depl::nhosts = hostdata::size();
}
if (opt::auto_depl::load == 0.0) {
- XBT_WARN("Initial load is zero! Falling back on old behaviour.");
+ XBT_WARN("Initial load is zero! "
+ "Falling back on old behaviour (load = nhosts).");
opt::auto_depl::load = opt::auto_depl::nhosts;
} else if (opt::auto_depl::load < 0.0)
opt::auto_depl::load =
-opt::auto_depl::load * opt::auto_depl::nhosts;
+ double iload = std::trunc(opt::auto_depl::load);
+ if (opt::integer_transfer && opt::auto_depl::load != iload) {
+ XBT_WARN("Total load %g is not an integer. Truncate it.",
+ opt::auto_depl::load);
+ opt::auto_depl::load = iload;
+ }
MY_launch_application(); // it is already opt::* aware...
} else {
MSG_launch_application(opt::deployment_file.c_str());
XBT_INFO(",----[ Results ]");
PR_STATS("Load", loads);
PR_STATS("Computation", comps);
+ PR_STATS("Comp. iterations", 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);