X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3a1ea70a418f393ca1677074e928c664022295bd..HEAD:/src/smpi/plugins/ampi/instr_ampi.cpp diff --git a/src/smpi/plugins/ampi/instr_ampi.cpp b/src/smpi/plugins/ampi/instr_ampi.cpp index d6ea5b014f..485618ea81 100644 --- a/src/smpi/plugins/ampi/instr_ampi.cpp +++ b/src/smpi/plugins/ampi/instr_ampi.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2020. 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. */ @@ -9,49 +9,48 @@ #include #include -static std::map ampi_colors = {{"migrate", "0.2 0.5 0.2"}, - {"iteration", "0.5 0.5 0.5"} -}; +static const std::map> ampi_colors = {{"migrate", "0.2 0.5 0.2"}, + {"iteration", "0.5 0.5 0.5"}}; -void TRACE_Iteration_in(int rank, simgrid::instr::TIData* extra) +void TRACE_Iteration_in(aid_t pid, simgrid::instr::TIData* extra) { if (not TRACE_smpi_is_enabled()) { delete extra; return; } - smpi_container(rank)->get_state("MPI_STATE")->add_entity_value("iteration", ampi_colors["iteration"]); - smpi_container(rank)->get_state("MPI_STATE")->push_event("iteration", extra); + smpi_container(pid)->get_state("MPI_STATE")->add_entity_value("iteration", ampi_colors.at("iteration")); + smpi_container(pid)->get_state("MPI_STATE")->push_event("iteration", extra); } -void TRACE_Iteration_out(int rank, simgrid::instr::TIData* extra) +void TRACE_Iteration_out(aid_t pid, simgrid::instr::TIData* extra) { if (not TRACE_smpi_is_enabled()) return; - smpi_container(rank)->get_state("MPI_STATE")->pop_event(extra); + smpi_container(pid)->get_state("MPI_STATE")->pop_event(extra); } -void TRACE_migration_call(int rank, simgrid::instr::TIData* extra) +void TRACE_migration_call(aid_t pid, simgrid::instr::TIData* extra) { if (not TRACE_smpi_is_enabled()) return; const std::string operation = "migrate"; if(smpi_process()->replaying()) {//When replaying, we register an event. - smpi_container(rank)->get_state("MIGRATE_STATE")->add_entity_value(operation); + smpi_container(pid)->get_state("MIGRATE_STATE")->add_entity_value(operation); - auto* type = static_cast(smpi_container(rank)->type_->by_name(operation)); - new simgrid::instr::NewEvent(smpi_process()->simulated_elapsed(), smpi_container(rank), type, + auto* type = static_cast(smpi_container(pid)->get_type()->by_name(operation)); + new simgrid::instr::NewEvent(smpi_process()->simulated_elapsed(), smpi_container(pid), type, type->get_entity_value(operation)); } else { // FIXME From rktesser: Ugly workaround! // TI tracing uses states as events, and does not support printing events. // So, we need a different code than for replay in order to be able to // generate ti_traces for the migration calls. - if (!TRACE_smpi_is_enabled()) { + if (not TRACE_smpi_is_enabled()) { delete extra; return; } - smpi_container(rank)->get_state("MIGRATE_STATE")->add_entity_value(operation, ampi_colors[operation.c_str()]); - smpi_container(rank)->get_state("MIGRATE_STATE")->push_event(operation, extra); - smpi_container(rank)->get_state("MIGRATE_STATE")->pop_event(); + smpi_container(pid)->get_state("MIGRATE_STATE")->add_entity_value(operation, ampi_colors.at(operation)); + smpi_container(pid)->get_state("MIGRATE_STATE")->push_event(operation, extra); + smpi_container(pid)->get_state("MIGRATE_STATE")->pop_event(); } }