X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/af4f612eb20e7408a89f195d4947fda9a3a0ce18..d37b22379fc9b7e760482d6edc10b645d9862db6:/src/smpi/internals/smpi_bench.cpp diff --git a/src/smpi/internals/smpi_bench.cpp b/src/smpi/internals/smpi_bench.cpp index e98b8126da..5f9532ba29 100644 --- a/src/smpi/internals/smpi_bench.cpp +++ b/src/smpi/internals/smpi_bench.cpp @@ -7,13 +7,13 @@ #include "simgrid/host.h" #include "simgrid/modelchecker.h" #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 @@ -82,7 +82,7 @@ void smpi_execute_benched(double duration) void smpi_bench_begin() { - if (smpi_privatize_global_variables == SmpiPrivStrategies::Mmap) { + if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) { smpi_switch_data_segment(simgrid::s4u::Actor::self()); } @@ -119,7 +119,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 +159,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 @@ -180,7 +180,7 @@ static unsigned int private_sleep(double secs) smpi_bench_end(); XBT_DEBUG("Sleep for: %lf secs", secs); - int rank = MPI_COMM_WORLD->rank(); + int rank = simgrid::s4u::this_actor::get_pid(); TRACE_smpi_sleeping_in(rank, secs); simcall_process_sleep(secs); @@ -443,6 +443,17 @@ void smpi_bench_destroy() samples.clear(); } +int smpi_getopt_long_only (int argc, char *const *argv, const char *options, + const struct option * long_options, int *opt_index) +{ + if (smpi_process()) + optind = smpi_process()->get_optind(); + int ret = getopt_long_only (argc, argv, options, long_options, opt_index); + if (smpi_process()) + smpi_process()->set_optind(optind); + return ret; +} + int smpi_getopt_long (int argc, char *const *argv, const char *options, const struct option * long_options, int *opt_index) {