X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a882344bc908a258a991701e226556ec23fd7cd6..2865125a12cae86515e21999f32efe33de513646:/src/smpi/internals/instr_smpi.cpp diff --git a/src/smpi/internals/instr_smpi.cpp b/src/smpi/internals/instr_smpi.cpp index 29beff2dfa..993c7286e0 100644 --- a/src/smpi/internals/instr_smpi.cpp +++ b/src/smpi/internals/instr_smpi.cpp @@ -1,23 +1,20 @@ -/* Copyright (c) 2010-2022. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2010-2023. The SimGrid Team. All rights reserved. */ /* 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 "private.hpp" -#include -#include -#include -#include -#include +#include "src/simgrid/sg_config.hpp" +#include "src/smpi/include/smpi_actor.hpp" #include #include #include -#include + +#include +#include #include #include -#include "src/smpi/include/smpi_actor.hpp" - XBT_LOG_NEW_DEFAULT_SUBCATEGORY(instr_smpi, instr, "Tracing SMPI"); static std::unordered_map> keys; @@ -89,9 +86,9 @@ static const char* instr_find_color(const char* c_state) if (smpi_colors.find(state) != smpi_colors.end()) { // Exact match in the map? return smpi_colors.find(state)->second.c_str(); } - for (const auto& pair : smpi_colors) { // Is an entry of our map a substring of this state name? - if (std::strstr(state.c_str(), pair.first.c_str()) != nullptr) - return pair.second.c_str(); + for (const auto& [smpi_state, color] : smpi_colors) { // Is an entry of our map a substring of this state name? + if (state.find(smpi_state) != std::string::npos) + return color.c_str(); } return "0.5 0.5 0.5"; // Just in case we find nothing in the map ... @@ -99,7 +96,7 @@ static const char* instr_find_color(const char* c_state) XBT_PRIVATE simgrid::instr::Container* smpi_container(aid_t pid) { - return simgrid::instr::Container::by_name(std::string("rank-") + std::to_string(pid)); + return simgrid::instr::Container::by_name("rank-" + std::to_string(pid)); } static std::string TRACE_smpi_put_key(aid_t src, aid_t dst, int tag, int send) @@ -123,8 +120,7 @@ static std::string TRACE_smpi_get_key(aid_t src, aid_t dst, int tag, int send) std::string key; std::string aux = std::to_string(src) + "#" + std::to_string(dst) + "#" + std::to_string(tag) + "#" + std::to_string(send == 1 ? 0 : 1); - auto it = keys.find(aux); - if (it == keys.end()) { + if (auto it = keys.find(aux); it == keys.end()) { // first posted key = TRACE_smpi_put_key(src, dst, tag, send); } else { @@ -143,7 +139,7 @@ void TRACE_smpi_setup_container(aid_t pid, const_sg_host_t host) parent = simgrid::instr::Container::by_name_or_null(host->get_name()); xbt_assert(parent != nullptr, "Could not find a parent for mpi rank 'rank-%ld' at function %s", pid, __func__); } - parent->create_child(std::string("rank-") + std::to_string(pid), "MPI"); // This container is of type MPI + parent->create_child("rank-" + std::to_string(pid), "MPI"); // This container is of type MPI } void TRACE_smpi_init(aid_t pid, const std::string& calling_func) @@ -170,12 +166,12 @@ void TRACE_smpi_init(aid_t pid, const std::string& calling_func) const simgrid::instr::Container* container = smpi_container(pid); papi_counter_t counters = smpi_process()->papi_counters(); - for (auto const& it : counters) { + for (auto const& [counter, _] : counters) { /** * Check whether this variable already exists or not. Otherwise, it will be created * multiple times but only the last one would be used... */ - container->get_type()->by_name_or_create(it.first, ""); + container->get_type()->by_name_or_create(counter, ""); } #endif }