Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[SMPI/LB] Require an actor as argument for get_mapping
[simgrid.git] / src / smpi / plugins / sampi_loadbalancer.cpp
index bddb6c9..b201830 100644 (file)
@@ -54,8 +54,9 @@ public:
     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;
@@ -67,8 +68,8 @@ public:
     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();
     }
@@ -77,7 +78,7 @@ public:
     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().