X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a69f8338676e77525c4353c1099137857ca02c33..3a3154dd12267caf08d76df3f9c5458c9489b3a3:/src/smpi/internals/smpi_bench.cpp?ds=sidebyside diff --git a/src/smpi/internals/smpi_bench.cpp b/src/smpi/internals/smpi_bench.cpp index 56b211e352..85191c7329 100644 --- a/src/smpi/internals/smpi_bench.cpp +++ b/src/smpi/internals/smpi_bench.cpp @@ -3,17 +3,18 @@ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ +#include "getopt.h" #include "private.hpp" #include "simgrid/host.h" #include "simgrid/modelchecker.h" +#include "simgrid/s4u/Exec.hpp" #include "smpi_comm.hpp" -#include "smpi_process.hpp" #include "src/internal_config.h" #include "src/mc/mc_replay.hpp" #include "src/simix/ActorImpl.hpp" #include "xbt/config.hpp" -#include "getopt.h" +#include "src/smpi/include/smpi_actor.hpp" #include #ifndef WIN32 @@ -48,9 +49,11 @@ void smpi_execute_(double *duration) void smpi_execute_flops(double flops) { xbt_assert(flops >= 0, "You're trying to execute a negative amount of flops (%f)!", flops); XBT_DEBUG("Handle real computation time: %f flops", flops); - smx_activity_t action = simcall_execution_start("computation", flops, 1, 0, smpi_process()->get_actor()->get_host()); - simcall_set_category (action, TRACE_internal_smpi_get_category()); - simcall_execution_wait(action); + simgrid::s4u::this_actor::exec_init(flops) + ->set_name("computation") + ->set_tracing_category(TRACE_internal_smpi_get_category()) + ->start() + ->wait(); smpi_switch_data_segment(simgrid::s4u::Actor::self()); } @@ -119,7 +122,7 @@ void smpi_bench_end() * An MPI function has been called and now is the right time to update * our PAPI counters for this process. */ - if (simgrid::config::get_value("smpi/papi-events")[0] != '\0') { + if (not simgrid::config::get_value("smpi/papi-events").empty()) { papi_counter_t& counter_data = smpi_process()->papi_counters(); int event_set = smpi_process()->papi_event_set(); std::vector event_values = std::vector(counter_data.size()); @@ -159,14 +162,14 @@ void smpi_bench_end() } #if HAVE_PAPI - if (simgrid::config::get_value("smpi/papi-events")[0] != '\0' && TRACE_smpi_is_enabled()) { + if (not simgrid::config::get_value("smpi/papi-events").empty() && TRACE_smpi_is_enabled()) { container_t container = - new simgrid::instr::Container(std::string("rank-") + std::to_string(simgrid::s4u::this_actor::get_pid())); + simgrid::instr::Container::by_name(std::string("rank-") + std::to_string(simgrid::s4u::this_actor::get_pid())); papi_counter_t& counter_data = smpi_process()->papi_counters(); for (auto const& pair : counter_data) { - new simgrid::instr::SetVariableEvent( - surf_get_clock(), container, PJ_type_get(/* countername */ pair.first.c_str(), container->type), pair.second); + simgrid::instr::VariableType* variable = static_cast(container->type_->by_name(pair.first)); + variable->set_event(SIMIX_get_clock(), pair.second); } } #endif