X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0b8f994b3ef90cdc5129e1c830be1f434c69bbcc..8acc20574b73d8f392e3acc6c369c05e3d88da75:/src/smpi/internals/smpi_replay.cpp diff --git a/src/smpi/internals/smpi_replay.cpp b/src/smpi/internals/smpi_replay.cpp index 9813e79f6b..2230e6f143 100644 --- a/src/smpi/internals/smpi_replay.cpp +++ b/src/smpi/internals/smpi_replay.cpp @@ -21,17 +21,17 @@ using simgrid::s4u::Actor; XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_replay,smpi,"Trace Replay with SMPI"); -int communicator_size = 0; -static int active_processes = 0; -std::unordered_map*> reqq; +static int communicator_size = 0; +static int active_processes = 0; +static std::unordered_map*> reqq; -MPI_Datatype MPI_DEFAULT_TYPE; -MPI_Datatype MPI_CURRENT_TYPE; +static MPI_Datatype MPI_DEFAULT_TYPE; +static MPI_Datatype MPI_CURRENT_TYPE; -static int sendbuffer_size=0; -char* sendbuffer=nullptr; -static int recvbuffer_size=0; -char* recvbuffer=nullptr; +static int sendbuffer_size = 0; +static char* sendbuffer = nullptr; +static int recvbuffer_size = 0; +static char* recvbuffer = nullptr; static void log_timed_action (const char *const *action, double clock){ if (XBT_LOG_ISENABLED(smpi_replay, xbt_log_priority_verbose)){ @@ -619,9 +619,7 @@ static void action_gatherv(const char *const *action) { if(rank==root) recv = smpi_get_tmp_recvbuffer(recv_sum* MPI_CURRENT_TYPE2->size()); - std::vector* trace_recvcounts = new std::vector; - for (int i = 0; i < comm_size; i++) // copy data to avoid bad free - trace_recvcounts->push_back(recvcounts[i]); + std::vector* trace_recvcounts = new std::vector(recvcounts, recvcounts + comm_size); TRACE_smpi_comm_in(rank, __FUNCTION__, new simgrid::instr::VarCollTIData( "gatherV", root, send_size, nullptr, -1, trace_recvcounts, @@ -671,9 +669,7 @@ static void action_scatterv(const char* const* action) if (rank == root) send = smpi_get_tmp_sendbuffer(send_sum * MPI_CURRENT_TYPE2->size()); - std::vector* trace_sendcounts = new std::vector; - for (int i = 0; i < comm_size; i++) // copy data to avoid bad free - trace_sendcounts->push_back(sendcounts[i]); + std::vector* trace_sendcounts = new std::vector(sendcounts, sendcounts + comm_size); TRACE_smpi_comm_in(rank, __FUNCTION__, new simgrid::instr::VarCollTIData( "gatherV", root, -1, trace_sendcounts, recv_size, nullptr, @@ -790,9 +786,7 @@ static void action_allgatherv(const char *const *action) { int my_proc_id = Actor::self()->getPid(); - std::vector* trace_recvcounts = new std::vector; - for (int i = 0; i < comm_size; i++) // copy data to avoid bad free - trace_recvcounts->push_back(recvcounts[i]); + std::vector* trace_recvcounts = new std::vector(recvcounts, recvcounts + comm_size); TRACE_smpi_comm_in(my_proc_id, __FUNCTION__, new simgrid::instr::VarCollTIData("allGatherV", -1, sendcount, nullptr, -1, trace_recvcounts,