From: Christian Heinrich Date: Wed, 17 Jan 2018 17:45:27 +0000 (+0100) Subject: [SMPI] (SECOND PATCH) Fix destinations/origins for tracing *TIData objects X-Git-Tag: v3.19~312^2~30 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/3f613a4dfe96c1da04ff48ade0c3ebd0609a2c0d [SMPI] (SECOND PATCH) Fix destinations/origins for tracing *TIData objects This patch will either not build or will have failing tests, as it belongs to a series of patches. --- diff --git a/src/smpi/bindings/smpi_pmpi_coll.cpp b/src/smpi/bindings/smpi_pmpi_coll.cpp index f4f8ac1972..430664e32e 100644 --- a/src/smpi/bindings/smpi_pmpi_coll.cpp +++ b/src/smpi/bindings/smpi_pmpi_coll.cpp @@ -28,7 +28,7 @@ int PMPI_Bcast(void *buf, int count, MPI_Datatype datatype, int root, MPI_Comm c } else { int rank = comm->rank(); TRACE_smpi_comm_in(rank, __FUNCTION__, - new simgrid::instr::CollTIData("bcast", comm->group()->actor(root)->getPid()-1, -1.0, + new simgrid::instr::CollTIData("bcast", root, -1.0, datatype->is_replayable() ? count : count * datatype->size(), -1, encode_datatype(datatype), "")); if (comm->size() > 1) @@ -90,11 +90,11 @@ int PMPI_Gather(void *sendbuf, int sendcount, MPI_Datatype sendtype,void *recvbu sendtmpcount=0; sendtmptype=recvtype; } - int rank = comm->rank(); + int rank = simgrid::s4u::Actor::self()->getPid(); TRACE_smpi_comm_in(rank, __FUNCTION__, new simgrid::instr::CollTIData( - "gather", comm->group()->actor(root)->getPid()-1, -1.0, + "gather", root, -1.0, sendtmptype->is_replayable() ? sendtmpcount : sendtmpcount * sendtmptype->size(), (comm->rank() != root || recvtype->is_replayable()) ? recvcount : recvcount * recvtype->size(), encode_datatype(sendtmptype), encode_datatype(recvtype))); @@ -145,7 +145,7 @@ int PMPI_Gatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recv TRACE_smpi_comm_in(rank, __FUNCTION__, new simgrid::instr::VarCollTIData( - "gatherV", comm->group()->actor(root)->getPid()-1, + "gatherV", root, sendtmptype->is_replayable() ? sendtmpcount : sendtmpcount * sendtmptype->size(), nullptr, dt_size_recv, trace_recvcounts, encode_datatype(sendtmptype), encode_datatype(recvtype))); @@ -257,11 +257,11 @@ int PMPI_Scatter(void *sendbuf, int sendcount, MPI_Datatype sendtype, recvtype = sendtype; recvcount = sendcount; } - int rank = comm->rank(); + int rank = simgrid::s4u::Actor::self()->getPid(); TRACE_smpi_comm_in(rank, __FUNCTION__, new simgrid::instr::CollTIData( - "scatter", comm->group()->actor(root)->getPid()-1, -1.0, + "scatter", root, -1.0, (comm->rank() != root || sendtype->is_replayable()) ? sendcount : sendcount * sendtype->size(), recvtype->is_replayable() ? recvcount : recvcount * recvtype->size(), encode_datatype(sendtype), encode_datatype(recvtype))); @@ -304,7 +304,7 @@ int PMPI_Scatterv(void *sendbuf, int *sendcounts, int *displs, } TRACE_smpi_comm_in(rank, __FUNCTION__, new simgrid::instr::VarCollTIData( - "scatterV", comm->group()->actor(root)->getPid()-1, dt_size_send, trace_sendcounts, + "scatterV", root, dt_size_send, trace_sendcounts, recvtype->is_replayable() ? recvcount : recvcount * recvtype->size(), nullptr, encode_datatype(sendtype), encode_datatype(recvtype))); @@ -331,7 +331,7 @@ int PMPI_Reduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, int rank = comm->rank(); TRACE_smpi_comm_in(rank, __FUNCTION__, - new simgrid::instr::CollTIData("reduce", comm->group()->actor(root)->getPid()-1, 0, + new simgrid::instr::CollTIData("reduce", root, 0, datatype->is_replayable() ? count : count * datatype->size(), -1, encode_datatype(datatype), "")); diff --git a/src/smpi/bindings/smpi_pmpi_request.cpp b/src/smpi/bindings/smpi_pmpi_request.cpp index b4b111072c..9742a15dde 100644 --- a/src/smpi/bindings/smpi_pmpi_request.cpp +++ b/src/smpi/bindings/smpi_pmpi_request.cpp @@ -167,7 +167,7 @@ int PMPI_Irecv(void *buf, int count, MPI_Datatype datatype, int src, int tag, MP int my_proc_id = simgrid::s4u::Actor::self()->getPid(); TRACE_smpi_comm_in(my_proc_id, __FUNCTION__, - new simgrid::instr::Pt2PtTIData("Irecv", src_traced, + new simgrid::instr::Pt2PtTIData("Irecv", src, datatype->is_replayable() ? count : count * datatype->size(), encode_datatype(datatype))); @@ -208,7 +208,7 @@ int PMPI_Isend(void *buf, int count, MPI_Datatype datatype, int dst, int tag, MP int my_proc_id = simgrid::s4u::Actor::self()->getPid(); int trace_dst = getPid(comm, dst); TRACE_smpi_comm_in(my_proc_id, __FUNCTION__, - new simgrid::instr::Pt2PtTIData("Isend", trace_dst, + new simgrid::instr::Pt2PtTIData("Isend", dst, datatype->is_replayable() ? count : count * datatype->size(), encode_datatype(datatype))); @@ -250,7 +250,7 @@ int PMPI_Issend(void* buf, int count, MPI_Datatype datatype, int dst, int tag, M int my_proc_id = simgrid::s4u::Actor::self()->getPid(); int trace_dst = getPid(comm, dst); TRACE_smpi_comm_in(my_proc_id, __FUNCTION__, - new simgrid::instr::Pt2PtTIData("ISsend", trace_dst, + new simgrid::instr::Pt2PtTIData("ISsend", dst, datatype->is_replayable() ? count : count * datatype->size(), encode_datatype(datatype))); TRACE_smpi_send(my_proc_id, my_proc_id, trace_dst, tag, count * datatype->size()); @@ -290,7 +290,7 @@ int PMPI_Recv(void *buf, int count, MPI_Datatype datatype, int src, int tag, MPI int my_proc_id = simgrid::s4u::Actor::self()->getPid(); int src_traced = getPid(comm, src); TRACE_smpi_comm_in(my_proc_id, __FUNCTION__, - new simgrid::instr::Pt2PtTIData("recv", src_traced, + new simgrid::instr::Pt2PtTIData("recv", src, datatype->is_replayable() ? count : count * datatype->size(), encode_datatype(datatype))); @@ -333,7 +333,7 @@ int PMPI_Send(void *buf, int count, MPI_Datatype datatype, int dst, int tag, MPI int my_proc_id = simgrid::s4u::Actor::self()->getPid(); int dst_traced = getPid(comm, dst); TRACE_smpi_comm_in(my_proc_id, __FUNCTION__, - new simgrid::instr::Pt2PtTIData("send", dst_traced, + new simgrid::instr::Pt2PtTIData("send", dst, datatype->is_replayable() ? count : count * datatype->size(), encode_datatype(datatype))); if (not TRACE_smpi_view_internals()) { @@ -371,7 +371,7 @@ int PMPI_Ssend(void* buf, int count, MPI_Datatype datatype, int dst, int tag, MP int my_proc_id = simgrid::s4u::Actor::self()->getPid(); int dst_traced = getPid(comm, dst); TRACE_smpi_comm_in(my_proc_id, __FUNCTION__, - new simgrid::instr::Pt2PtTIData("Ssend", dst_traced, + new simgrid::instr::Pt2PtTIData("Ssend", dst, datatype->is_replayable() ? count : count * datatype->size(), encode_datatype(datatype))); TRACE_smpi_send(my_proc_id, my_proc_id, dst_traced, tag, count * datatype->size()); diff --git a/src/smpi/bindings/smpi_pmpi_win.cpp b/src/smpi/bindings/smpi_pmpi_win.cpp index f19c60db1d..47bd49419e 100644 --- a/src/smpi/bindings/smpi_pmpi_win.cpp +++ b/src/smpi/bindings/smpi_pmpi_win.cpp @@ -274,7 +274,7 @@ int PMPI_Put( void *origin_addr, int origin_count, MPI_Datatype origin_datatype, MPI_Group group; win->get_group(&group); int dst_traced = group->actor(target_rank)->getPid(); - TRACE_smpi_comm_in(rank, __FUNCTION__, new simgrid::instr::Pt2PtTIData("Put", dst_traced, + TRACE_smpi_comm_in(rank, __FUNCTION__, new simgrid::instr::Pt2PtTIData("Put", target_rank, origin_datatype->is_replayable() ? origin_count : origin_count * origin_datatype->size(), encode_datatype(origin_datatype))); TRACE_smpi_send(rank, rank, dst_traced, SMPI_RMA_TAG, origin_count*origin_datatype->size()); @@ -315,7 +315,7 @@ int PMPI_Rput( void *origin_addr, int origin_count, MPI_Datatype origin_datatype MPI_Group group; win->get_group(&group); int dst_traced = group->actor(target_rank)->getPid(); - TRACE_smpi_comm_in(rank, __FUNCTION__, new simgrid::instr::Pt2PtTIData("Rput", dst_traced, + TRACE_smpi_comm_in(rank, __FUNCTION__, new simgrid::instr::Pt2PtTIData("Rput", target_rank, origin_datatype->is_replayable() ? origin_count : origin_count * origin_datatype->size(), encode_datatype(origin_datatype))); TRACE_smpi_send(rank, rank, dst_traced, SMPI_RMA_TAG, origin_count*origin_datatype->size()); diff --git a/src/smpi/internals/smpi_replay.cpp b/src/smpi/internals/smpi_replay.cpp index db2dfa6ee0..421cc29a17 100644 --- a/src/smpi/internals/smpi_replay.cpp +++ b/src/smpi/internals/smpi_replay.cpp @@ -223,7 +223,7 @@ static void action_send(const char *const *action) int dst_traced = MPI_COMM_WORLD->group()->rank(to); TRACE_smpi_comm_in(rank, __FUNCTION__, - new simgrid::instr::Pt2PtTIData("send", dst_traced, size, encode_datatype(MPI_CURRENT_TYPE))); + new simgrid::instr::Pt2PtTIData("send", to, size, encode_datatype(MPI_CURRENT_TYPE))); if (not TRACE_smpi_view_internals()) TRACE_smpi_send(rank, rank, dst_traced, 0, size*MPI_CURRENT_TYPE->size()); @@ -249,7 +249,7 @@ static void action_Isend(const char *const *action) int rank = smpi_process()->index(); int dst_traced = MPI_COMM_WORLD->group()->rank(to); TRACE_smpi_comm_in(rank, __FUNCTION__, - new simgrid::instr::Pt2PtTIData("Isend", dst_traced, size, encode_datatype(MPI_CURRENT_TYPE))); + new simgrid::instr::Pt2PtTIData("Isend", to, size, encode_datatype(MPI_CURRENT_TYPE))); if (not TRACE_smpi_view_internals()) TRACE_smpi_send(rank, rank, dst_traced, 0, size*MPI_CURRENT_TYPE->size()); @@ -278,7 +278,7 @@ static void action_recv(const char *const *action) { int src_traced = MPI_COMM_WORLD->group()->rank(from); TRACE_smpi_comm_in(rank, __FUNCTION__, - new simgrid::instr::Pt2PtTIData("recv", src_traced, size, encode_datatype(MPI_CURRENT_TYPE))); + new simgrid::instr::Pt2PtTIData("recv", from, size, encode_datatype(MPI_CURRENT_TYPE))); //unknown size from the receiver point of view if (size <= 0.0) { @@ -311,7 +311,7 @@ static void action_Irecv(const char *const *action) int rank = smpi_process()->index(); int src_traced = MPI_COMM_WORLD->group()->rank(from); TRACE_smpi_comm_in(rank, __FUNCTION__, - new simgrid::instr::Pt2PtTIData("Irecv", src_traced, size, encode_datatype(MPI_CURRENT_TYPE))); + new simgrid::instr::Pt2PtTIData("Irecv", from, size, encode_datatype(MPI_CURRENT_TYPE))); MPI_Status status; //unknow size from the receiver pov if (size <= 0.0) {