X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b8df87e176f27b25534f27d7e240defa32ca35bc..5a4a50803fa81e171c6c4b6962c597a3b33f55ca:/src/smpi/internals/instr_smpi.cpp diff --git a/src/smpi/internals/instr_smpi.cpp b/src/smpi/internals/instr_smpi.cpp index fc866c976b..30b9bf15be 100644 --- a/src/smpi/internals/instr_smpi.cpp +++ b/src/smpi/internals/instr_smpi.cpp @@ -36,7 +36,7 @@ static std::map smpi_colors = {{"recv", "1 0 0"}, {"allreduce", "1 0 1"}, {"alltoall", "0.52 0 1"}, {"alltoallv", "0.78 0.52 1"}, - {"barrier", "0 0.78 0.78"}, + {"barrier", "0 0.39 0.78"}, {"bcast", "0 0.78 0.39"}, {"gather", "1 1 0"}, {"gatherv", "1 1 0.52"}, @@ -74,11 +74,14 @@ static std::map smpi_colors = {{"recv", "1 0 0"}, {"win_flush", "1 0 0.3"}, {"win_flush_local", "1 0 0.8"}, {"win_flush_all", "1 0.8 0"}, - {"win_flush_local_all", "1 0 0.3"} + {"win_flush_local_all", "1 0 0.3"}, + + {"file_read", "1 1 0.3"} }; -static const char* instr_find_color(std::string state) +static const char* instr_find_color(const char* c_state) { + std::string state(c_state); boost::algorithm::to_lower(state); if (state.substr(0, 5) == "pmpi_") state = state.substr(5, std::string::npos); // Remove pmpi_ to allow for exact matches @@ -133,29 +136,6 @@ static std::string TRACE_smpi_get_key(int src, int dst, int tag, int send) return key; } -static std::unordered_map process_category; - -void TRACE_internal_smpi_set_category(std::string category) -{ - if (not TRACE_smpi_is_enabled()) - return; - - //declare category - TRACE_category(category.c_str()); - - if (not category.empty()) - process_category[SIMIX_process_self()] = category; -} - -std::string TRACE_internal_smpi_get_category() -{ - if (not TRACE_smpi_is_enabled()) - return ""; - - auto it = process_category.find(SIMIX_process_self()); - return (it == process_category.end()) ? "" : it->second.c_str(); -} - void TRACE_smpi_setup_container(int rank, sg_host_t host) { container_t father = simgrid::instr::Container::get_root(); @@ -171,7 +151,10 @@ void TRACE_smpi_init(int rank) if (not TRACE_smpi_is_enabled()) return; + auto self = simgrid::s4u::Actor::self(); + TRACE_smpi_setup_container(rank, sg_host_self()); + simgrid::s4u::this_actor::on_exit([self](bool) { smpi_container(self->get_pid())->remove_from_parent(); }); #if HAVE_PAPI container_t container = smpi_container(rank); papi_counter_t counters = smpi_process()->papi_counters(); @@ -186,14 +169,6 @@ void TRACE_smpi_init(int rank) #endif } -void TRACE_smpi_finalize(int rank) -{ - if (not TRACE_smpi_is_enabled()) - return; - - smpi_container(rank)->remove_from_parent(); -} - void TRACE_smpi_computing_init(int rank) { //first use, initialize the color in the trace