X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/02fbf5e463830a439464adae8626cd4f2dad27fd..5c59b7149d98aa9375bc6d89bbfad43e46aaa7f0:/src/smpi/internals/smpi_replay.cpp diff --git a/src/smpi/internals/smpi_replay.cpp b/src/smpi/internals/smpi_replay.cpp index a257225c4c..0897ed1e98 100644 --- a/src/smpi/internals/smpi_replay.cpp +++ b/src/smpi/internals/smpi_replay.cpp @@ -17,6 +17,8 @@ #define KEY_SIZE (sizeof(int) * 2 + 1) +using simgrid::s4u::Actor; + XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_replay,smpi,"Trace Replay with SMPI"); int communicator_size = 0; @@ -41,12 +43,12 @@ static void log_timed_action (const char *const *action, double clock){ static std::vector* get_reqq_self() { - return reqq.at(smpi_process()->index()); + return reqq.at(Actor::self()->getPid()); } static void set_reqq_self(std::vector *mpi_request) { - reqq.insert({smpi_process()->index(), mpi_request}); + reqq.insert({Actor::self()->getPid(), mpi_request}); } //allocate a single buffer for all sends, growing it if needed @@ -198,7 +200,7 @@ static void action_compute(const char *const *action) CHECK_ACTION_PARAMS(action, 1, 0) double clock = smpi_process()->simulated_elapsed(); double flops= parse_double(action[2]); - int rank = smpi_process()->index(); + int rank = Actor::self()->getPid(); TRACE_smpi_computing_in(rank, flops); smpi_execute_flops(flops); @@ -219,11 +221,11 @@ static void action_send(const char *const *action) else MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE; - int rank = smpi_process()->index(); - int dst_traced = MPI_COMM_WORLD->group()->rank(to); + int rank = Actor::self()->getPid(); + int dst_traced = MPI_COMM_WORLD->group()->actor(to)->getPid(); 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()); @@ -246,10 +248,10 @@ static void action_Isend(const char *const *action) else MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE; - int rank = smpi_process()->index(); - int dst_traced = MPI_COMM_WORLD->group()->rank(to); + int rank = Actor::self()->getPid(); + int dst_traced = MPI_COMM_WORLD->group()->actor(to)->getPid(); 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()); @@ -274,11 +276,11 @@ static void action_recv(const char *const *action) { else MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE; - int rank = smpi_process()->index(); - int src_traced = MPI_COMM_WORLD->group()->rank(from); + int rank = Actor::self()->getPid(); + int src_traced = MPI_COMM_WORLD->group()->actor(from)->getPid(); 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) { @@ -308,10 +310,9 @@ static void action_Irecv(const char *const *action) else MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE; - int rank = smpi_process()->index(); - int src_traced = MPI_COMM_WORLD->group()->rank(from); + int rank = Actor::self()->getPid(); 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) { @@ -339,7 +340,7 @@ static void action_test(const char* const* action) //Different times in traced application and replayed version may lead to this //In this case, ignore the extra calls. if(request!=nullptr){ - int rank = smpi_process()->index(); + int rank = Actor::self()->getPid(); TRACE_smpi_testing_in(rank); int flag = Request::test(&request, &status); @@ -392,7 +393,7 @@ static void action_waitall(const char *const *action){ if (count_requests>0) { MPI_Status status[count_requests]; - int rank_traced = smpi_process()->index(); + int rank_traced = Actor::self()->getPid(); TRACE_smpi_comm_in(rank_traced, __FUNCTION__, new simgrid::instr::Pt2PtTIData("waitAll", -1, count_requests, "")); int recvs_snd[count_requests]; int recvs_rcv[count_requests]; @@ -417,7 +418,7 @@ static void action_waitall(const char *const *action){ static void action_barrier(const char *const *action){ double clock = smpi_process()->simulated_elapsed(); - int rank = smpi_process()->index(); + int rank = Actor::self()->getPid(); TRACE_smpi_comm_in(rank, __FUNCTION__, new simgrid::instr::NoOpTIData("barrier")); Colls::barrier(MPI_COMM_WORLD); @@ -441,9 +442,9 @@ static void action_bcast(const char *const *action) MPI_CURRENT_TYPE=decode_datatype(action[4]); } - int rank = smpi_process()->index(); + int rank = Actor::self()->getPid(); TRACE_smpi_comm_in(rank, __FUNCTION__, - new simgrid::instr::CollTIData("bcast", MPI_COMM_WORLD->group()->index(root), -1.0, size, -1, + new simgrid::instr::CollTIData("bcast", MPI_COMM_WORLD->group()->actor(root)->getPid(), -1.0, size, -1, encode_datatype(MPI_CURRENT_TYPE), "")); void *sendbuf = smpi_get_tmp_sendbuffer(size* MPI_CURRENT_TYPE->size()); @@ -469,9 +470,9 @@ static void action_reduce(const char *const *action) MPI_CURRENT_TYPE=decode_datatype(action[5]); } - int rank = smpi_process()->index(); + int rank = Actor::self()->getPid(); TRACE_smpi_comm_in(rank, __FUNCTION__, - new simgrid::instr::CollTIData("reduce", MPI_COMM_WORLD->group()->index(root), comp_size, + new simgrid::instr::CollTIData("reduce", MPI_COMM_WORLD->group()->actor(root)->getPid(), comp_size, comm_size, -1, encode_datatype(MPI_CURRENT_TYPE), "")); void *recvbuf = smpi_get_tmp_sendbuffer(comm_size* MPI_CURRENT_TYPE->size()); @@ -494,7 +495,7 @@ static void action_allReduce(const char *const *action) { MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE; double clock = smpi_process()->simulated_elapsed(); - int rank = smpi_process()->index(); + int rank = Actor::self()->getPid(); TRACE_smpi_comm_in(rank, __FUNCTION__, new simgrid::instr::CollTIData("allReduce", -1, comp_size, comm_size, -1, encode_datatype(MPI_CURRENT_TYPE), "")); @@ -525,7 +526,7 @@ static void action_allToAll(const char *const *action) { void *send = smpi_get_tmp_sendbuffer(send_size*comm_size* MPI_CURRENT_TYPE->size()); void *recv = smpi_get_tmp_recvbuffer(recv_size*comm_size* MPI_CURRENT_TYPE2->size()); - int rank = smpi_process()->index(); + int rank = Actor::self()->getPid(); TRACE_smpi_comm_in(rank, __FUNCTION__, new simgrid::instr::CollTIData("allToAll", -1, -1.0, send_size, recv_size, encode_datatype(MPI_CURRENT_TYPE), encode_datatype(MPI_CURRENT_TYPE2))); @@ -574,7 +575,7 @@ static void action_gather(const char *const *action) { Colls::gather(send, send_size, MPI_CURRENT_TYPE, recv, recv_size, MPI_CURRENT_TYPE2, root, MPI_COMM_WORLD); - TRACE_smpi_comm_out(smpi_process()->index()); + TRACE_smpi_comm_out(Actor::self()->getPid()); log_timed_action (action, clock); } @@ -617,7 +618,7 @@ static void action_scatter(const char* const* action) Colls::scatter(send, send_size, MPI_CURRENT_TYPE, recv, recv_size, MPI_CURRENT_TYPE2, root, MPI_COMM_WORLD); - TRACE_smpi_comm_out(smpi_process()->index()); + TRACE_smpi_comm_out(Actor::self()->getPid()); log_timed_action(action, clock); } @@ -670,7 +671,7 @@ static void action_gatherv(const char *const *action) { Colls::gatherv(send, send_size, MPI_CURRENT_TYPE, recv, recvcounts, disps, MPI_CURRENT_TYPE2, root, MPI_COMM_WORLD); - TRACE_smpi_comm_out(smpi_process()->index()); + TRACE_smpi_comm_out(Actor::self()->getPid()); log_timed_action (action, clock); } @@ -724,7 +725,7 @@ static void action_scatterv(const char* const* action) Colls::scatterv(send, sendcounts, disps, MPI_CURRENT_TYPE, recv, recv_size, MPI_CURRENT_TYPE2, root, MPI_COMM_WORLD); - TRACE_smpi_comm_out(smpi_process()->index()); + TRACE_smpi_comm_out(Actor::self()->getPid()); log_timed_action(action, clock); } @@ -741,7 +742,7 @@ static void action_reducescatter(const char *const *action) { CHECK_ACTION_PARAMS(action, comm_size+1, 1) int comp_size = parse_double(action[2+comm_size]); int recvcounts[comm_size]; - int rank = smpi_process()->index(); + int rank = Actor::self()->getPid(); int size = 0; std::vector* trace_recvcounts = new std::vector; if(action[3+comm_size]) @@ -795,7 +796,7 @@ static void action_allgather(const char *const *action) { void *sendbuf = smpi_get_tmp_sendbuffer(sendcount* MPI_CURRENT_TYPE->size()); void *recvbuf = smpi_get_tmp_recvbuffer(recvcount* MPI_CURRENT_TYPE2->size()); - int rank = smpi_process()->index(); + int rank = Actor::self()->getPid(); TRACE_smpi_comm_in(rank, __FUNCTION__, new simgrid::instr::CollTIData("allGather", -1, -1.0, sendcount, recvcount, encode_datatype(MPI_CURRENT_TYPE), @@ -840,7 +841,7 @@ static void action_allgatherv(const char *const *action) { } void *recvbuf = smpi_get_tmp_recvbuffer(recv_sum* MPI_CURRENT_TYPE2->size()); - int rank = smpi_process()->index(); + int rank = Actor::self()->getPid(); std::vector* trace_recvcounts = new std::vector; for (int i = 0; i < comm_size; i++) // copy data to avoid bad free @@ -890,7 +891,7 @@ static void action_allToAllv(const char *const *action) { else MPI_CURRENT_TYPE=MPI_DEFAULT_TYPE; - int rank = smpi_process()->index(); + int rank = Actor::self()->getPid(); void *sendbuf = smpi_get_tmp_sendbuffer(send_buf_size* MPI_CURRENT_TYPE->size()); void *recvbuf = smpi_get_tmp_recvbuffer(recv_buf_size* MPI_CURRENT_TYPE2->size()); @@ -925,7 +926,7 @@ void smpi_replay_init(int* argc, char*** argv) smpi_process()->mark_as_initialized(); smpi_process()->set_replaying(true); - int rank = smpi_process()->index(); + int rank = Actor::self()->getPid(); TRACE_smpi_init(rank); TRACE_smpi_computing_init(rank); TRACE_smpi_comm_in(rank, "smpi_replay_run_init", new simgrid::instr::NoOpTIData("init")); @@ -999,12 +1000,12 @@ void smpi_replay_main(int* argc, char*** argv) xbt_free(recvbuffer); } - TRACE_smpi_comm_in(smpi_process()->index(), "smpi_replay_run_finalize", new simgrid::instr::NoOpTIData("finalize")); + TRACE_smpi_comm_in(Actor::self()->getPid(), "smpi_replay_run_finalize", new simgrid::instr::NoOpTIData("finalize")); smpi_process()->finalize(); - TRACE_smpi_comm_out(smpi_process()->index()); - TRACE_smpi_finalize(smpi_process()->index()); + TRACE_smpi_comm_out(Actor::self()->getPid()); + TRACE_smpi_finalize(Actor::self()->getPid()); } /** @brief chain a replay initialization and a replay start */