From: Christian Heinrich Date: Tue, 13 Mar 2018 13:59:20 +0000 (+0100) Subject: [SMPI] Replay: Remove local variables from action_reducescatter X-Git-Tag: v3.20~600^2~57 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/bb3635460cc4c986b3057dbda4e735c25ae3a4a9?hp=1657559f7a990ddc091757a83d8e11201bdd5f64 [SMPI] Replay: Remove local variables from action_reducescatter --- diff --git a/src/smpi/internals/smpi_replay.cpp b/src/smpi/internals/smpi_replay.cpp index 0241c05beb..db6dd8309a 100644 --- a/src/smpi/internals/smpi_replay.cpp +++ b/src/smpi/internals/smpi_replay.cpp @@ -12,6 +12,7 @@ #include "smpi_request.hpp" #include "xbt/replay.hpp" +#include #include #include @@ -688,17 +689,14 @@ static void action_reducescatter(const char *const *action) { int comm_size = MPI_COMM_WORLD->size(); CHECK_ACTION_PARAMS(action, comm_size+1, 1) int comp_size = parse_double(action[2+comm_size]); - int recvcounts[comm_size]; int my_proc_id = Actor::self()->getPid(); - int size = 0; std::vector* trace_recvcounts = new std::vector; MPI_CURRENT_TYPE = (action[3 + comm_size]) ? decode_datatype(action[3 + comm_size]) : MPI_DEFAULT_TYPE; for(int i=0;ipush_back(recvcounts[i]); - size+=recvcounts[i]; + trace_recvcounts->push_back(atoi(action[i + 2])); } + int size{std::accumulate(trace_recvcounts->begin(), trace_recvcounts->end(), 0)}; TRACE_smpi_comm_in(my_proc_id, __FUNCTION__, new simgrid::instr::VarCollTIData("reduceScatter", -1, 0, nullptr, -1, trace_recvcounts, @@ -708,7 +706,7 @@ static void action_reducescatter(const char *const *action) { void *sendbuf = smpi_get_tmp_sendbuffer(size* MPI_CURRENT_TYPE->size()); void *recvbuf = smpi_get_tmp_recvbuffer(size* MPI_CURRENT_TYPE->size()); - Colls::reduce_scatter(sendbuf, recvbuf, recvcounts, MPI_CURRENT_TYPE, MPI_OP_NULL, MPI_COMM_WORLD); + Colls::reduce_scatter(sendbuf, recvbuf, trace_recvcounts->data(), MPI_CURRENT_TYPE, MPI_OP_NULL, MPI_COMM_WORLD); smpi_execute_flops(comp_size); TRACE_smpi_comm_out(my_proc_id);