X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/67fe7b9d6c00b390a8598bc1e72d42d8343cb218..9dec3b0501e4464e246196d29dce6d03a6cbd2d7:/src/smpi/internals/smpi_replay.cpp diff --git a/src/smpi/internals/smpi_replay.cpp b/src/smpi/internals/smpi_replay.cpp index a11183d07f..b4830ffcf0 100644 --- a/src/smpi/internals/smpi_replay.cpp +++ b/src/smpi/internals/smpi_replay.cpp @@ -134,7 +134,10 @@ public: /* Sometimes we need to re-insert MPI_REQUEST_NULL but we still need src,dst and tag */ void addNullRequest(int src, int dst, int tag) { - store.insert({req_key_t(src, dst, tag), MPI_REQUEST_NULL}); + store.insert({req_key_t( + MPI_COMM_WORLD->group()->actor(src)->get_pid()-1, + MPI_COMM_WORLD->group()->actor(dst)->get_pid()-1, + tag), MPI_REQUEST_NULL}); } }; @@ -444,8 +447,6 @@ void SendAction::kernel(simgrid::xbt::ReplayAction& action) void RecvAction::kernel(simgrid::xbt::ReplayAction& action) { - int src_traced = MPI_COMM_WORLD->group()->actor(args.partner)->get_pid(); - TRACE_smpi_comm_in(my_proc_id, __func__, new simgrid::instr::Pt2PtTIData(name, args.partner, args.size, args.tag, Datatype::encode(args.datatype1))); @@ -466,6 +467,7 @@ void RecvAction::kernel(simgrid::xbt::ReplayAction& action) TRACE_smpi_comm_out(my_proc_id); // TODO: Check why this was only activated in the "recv" case and not in the "irecv" case if (name == "recv" && not TRACE_smpi_view_internals()) { + int src_traced = MPI_COMM_WORLD->group()->actor(status.MPI_SOURCE)->get_pid(); TRACE_smpi_recv(src_traced, my_proc_id, args.tag); } } @@ -701,7 +703,9 @@ static std::unordered_map storage; /** @brief Only initialize the replay, don't do it for real */ void smpi_replay_init(int* argc, char*** argv) { - simgrid::smpi::ActorExt::init(argc, argv); + if (not smpi_process()->initializing()){ + simgrid::smpi::ActorExt::init(argc, argv); + } smpi_process()->mark_as_initialized(); smpi_process()->set_replaying(true);