Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Ensure that suspending an actor running later in the current scheduling round actuall...
[simgrid.git] / src / instr / instr_platform.cpp
index 65b97d428b03b54a28e0e3d318b13f2ffc969aff..b2d214c92aebd83f63ed21064a1ea2b94fedfcf0 100644 (file)
@@ -388,7 +388,6 @@ static void on_actor_creation(s4u::Actor const& actor)
   state->add_entity_value("send", "0 0 1");
   state->add_entity_value("execute", "0 1 1");
   root->type_->by_name_or_create("ACTOR_LINK", actor_type, actor_type);
-  root->type_->by_name_or_create("ACTOR_TASK_LINK", actor_type, actor_type);
 
   actor.on_exit([container_name](bool failed) {
     if (failed)
@@ -493,6 +492,17 @@ void define_callbacks()
     s4u::Actor::on_host_change.connect(on_actor_host_change);
   }
 
+  if (TRACE_smpi_is_enabled() && TRACE_smpi_is_computing()) {
+    s4u::Exec::on_start.connect([](simgrid::s4u::Actor const& actor, s4u::Exec const& exec) {
+      Container::by_name(std::string("rank-") + std::to_string(actor.get_pid()))
+          ->get_state("MPI_STATE")
+          ->push_event("computing", new CpuTIData("compute", exec.get_cost()));
+    });
+    s4u::Exec::on_completion.connect([](s4u::Actor const& actor, s4u::Exec const&) {
+      Container::by_name(std::string("rank-") + std::to_string(actor.get_pid()))->get_state("MPI_STATE")->pop_event();
+    });
+  }
+
   if (TRACE_vm_is_enabled()) {
     s4u::Host::on_creation.connect(on_vm_creation);
     s4u::VirtualMachine::on_start.connect([](s4u::VirtualMachine const& vm) {