simgrid::s4u::Host* cur_host = simgrid::s4u::this_actor::get_host();
simgrid::s4u::Host* migrate_to_host;
- TRACE_migration_call(my_proc_id, NULL);
+ TRACE_migration_call(my_proc_id, nullptr);
+ // We only migrate every "cfg_migration_frequency"-times, not at every call
migration_call_counter[simgrid::s4u::Actor::self()]++;
if ((migration_call_counter[simgrid::s4u::Actor::self()] % simgrid::config::get_value<int>(cfg_migration_frequency.get_name())) != 0) {
return;
static bool was_executed = false;
if (not was_executed) {
was_executed = true;
+ XBT_DEBUG("Process %li runs the load balancer", my_proc_id);
smpi_bench_begin();
- XBT_INFO("RUNNING THE LB");
lb.run();
smpi_bench_end();
}
smpilb_bar.wait();
was_executed = false; // Must stay behind this barrier so that all processes have passed the if clause
- migrate_to_host = lb.get_mapping();
+ migrate_to_host = lb.get_mapping(simgrid::s4u::Actor::self());
if (cur_host != migrate_to_host) { // Origin and dest are not the same -> migrate
sg_host_t migration_hosts[2] = {cur_host, migrate_to_host};
// Changing this to double[2] ... will cause trouble with parallel_execute, because that fct is trying to call free().