From: Augustin Degomme Date: Fri, 6 Aug 2021 16:47:12 +0000 (+0200) Subject: switch from pid to rank for ti-tracing the wait action X-Git-Tag: v3.29~161 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/ea2ddf47be8d050564f87272b1c23219c1702e0c switch from pid to rank for ti-tracing the wait action It was not working well before and was leading to discrepancies and impossible to replay traces. --- diff --git a/src/smpi/bindings/smpi_pmpi_request.cpp b/src/smpi/bindings/smpi_pmpi_request.cpp index 820a74706c..f903f068d3 100644 --- a/src/smpi/bindings/smpi_pmpi_request.cpp +++ b/src/smpi/bindings/smpi_pmpi_request.cpp @@ -601,7 +601,9 @@ int PMPI_Wait(MPI_Request * request, MPI_Status * status) aid_t my_proc_id = (*request)->comm() != MPI_COMM_NULL ? simgrid::s4u::this_actor::get_pid() : -1; TRACE_smpi_comm_in(my_proc_id, __func__, - new simgrid::instr::WaitTIData((*request)->src(), (*request)->dst(), (*request)->tag())); + new simgrid::instr::WaitTIData(MPI_COMM_WORLD->group()->rank((*request)->src()), + MPI_COMM_WORLD->group()->rank((*request)->dst()), + (*request)->tag())); retval = simgrid::smpi::Request::wait(request, status); diff --git a/src/smpi/internals/smpi_replay.cpp b/src/smpi/internals/smpi_replay.cpp index 784f32c45e..2ed50c2560 100644 --- a/src/smpi/internals/smpi_replay.cpp +++ b/src/smpi/internals/smpi_replay.cpp @@ -418,20 +418,18 @@ void WaitAction::kernel(simgrid::xbt::ReplayAction& action) return; } - aid_t rank = request->comm() != MPI_COMM_NULL ? request->comm()->rank() : -1; - // Must be taken before Request::wait() since the request may be set to // MPI_REQUEST_NULL by Request::wait! bool is_wait_for_receive = (request->flags() & MPI_REQ_RECV); - // TODO: Here we take the rank while we normally take the process id (look for get_pid()) - TRACE_smpi_comm_in(rank, __func__, new simgrid::instr::WaitTIData(args.src, args.dst, args.tag)); + + TRACE_smpi_comm_in(get_pid(), __func__, new simgrid::instr::WaitTIData(args.src, args.dst, args.tag)); MPI_Status status; Request::wait(&request, &status); - TRACE_smpi_comm_out(rank); + TRACE_smpi_comm_out(get_pid()); if (is_wait_for_receive) - TRACE_smpi_recv(args.src, args.dst, args.tag); + TRACE_smpi_recv(MPI_COMM_WORLD->group()->actor(args.src), MPI_COMM_WORLD->group()->actor(args.dst), args.tag); } void SendAction::kernel(simgrid::xbt::ReplayAction&)