This patch is the last and SMPI should build and run correctly.
> 0 1 0 MPI
> 2 2 1 MPI_STATE
> 4 3 0 1 1 MPI_LINK
> 0 1 0 MPI
> 2 2 1 MPI_STATE
> 4 3 0 1 1 MPI_LINK
> 5 4 2 computing "0 1 1"
> 5 5 2 smpi_replay_run_init "0 1 0"
> 5 4 2 computing "0 1 1"
> 5 5 2 smpi_replay_run_init "0 1 0"
-> 6 0 2 1 0 "rank-1"
-> 6 0 3 1 0 "rank-2"
+> 6 0 2 1 0 "rank-2"
+> 6 0 3 1 0 "rank-3"
> 12 0 2 1 5
> 13 0 2 1
> 12 0 2 2 5
> 12 0 2 1 5
> 13 0 2 1
> 12 0 2 2 5
if (getContainer()->getName().find("rank-") != 0)
stream << getContainer()->getName() << " " << extra_->print();
else
if (getContainer()->getName().find("rank-") != 0)
stream << getContainer()->getName() << " " << extra_->print();
else
- stream << getContainer()->getName().erase(0, 5) << " " << extra_->print();
+ /* Subtract -1 because this is the process id and we transform it to the rank id */
+ stream << stoi(getContainer()->getName().erase(0, 5)) - 1 << " " << extra_->print();
fprintf(tracing_files.at(getContainer()), "%s\n", stream.str().c_str());
} else {
fprintf(tracing_files.at(getContainer()), "%s\n", stream.str().c_str());
} else {
MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE;
int rank = smpi_process()->index();
MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE;
int rank = smpi_process()->index();
- int dst_traced = MPI_COMM_WORLD->group()->rank(to);
+ int dst_traced = MPI_COMM_WORLD->group()->actor(to)->getPid();
TRACE_smpi_comm_in(rank, __FUNCTION__,
new simgrid::instr::Pt2PtTIData("send", to, size, encode_datatype(MPI_CURRENT_TYPE)));
TRACE_smpi_comm_in(rank, __FUNCTION__,
new simgrid::instr::Pt2PtTIData("send", to, size, encode_datatype(MPI_CURRENT_TYPE)));
MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE;
int rank = smpi_process()->index();
MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE;
int rank = smpi_process()->index();
- int dst_traced = MPI_COMM_WORLD->group()->rank(to);
+ int dst_traced = MPI_COMM_WORLD->group()->actor(to)->getPid();
TRACE_smpi_comm_in(rank, __FUNCTION__,
new simgrid::instr::Pt2PtTIData("Isend", to, size, encode_datatype(MPI_CURRENT_TYPE)));
if (not TRACE_smpi_view_internals())
TRACE_smpi_comm_in(rank, __FUNCTION__,
new simgrid::instr::Pt2PtTIData("Isend", to, size, encode_datatype(MPI_CURRENT_TYPE)));
if (not TRACE_smpi_view_internals())
MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE;
int rank = smpi_process()->index();
MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE;
int rank = smpi_process()->index();
- int src_traced = MPI_COMM_WORLD->group()->rank(from);
+ int src_traced = MPI_COMM_WORLD->group()->actor(from)->getPid();
TRACE_smpi_comm_in(rank, __FUNCTION__,
new simgrid::instr::Pt2PtTIData("recv", from, size, encode_datatype(MPI_CURRENT_TYPE)));
TRACE_smpi_comm_in(rank, __FUNCTION__,
new simgrid::instr::Pt2PtTIData("recv", from, size, encode_datatype(MPI_CURRENT_TYPE)));
MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE;
int rank = smpi_process()->index();
MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE;
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", from, size, encode_datatype(MPI_CURRENT_TYPE)));
MPI_Status status;
TRACE_smpi_comm_in(rank, __FUNCTION__,
new simgrid::instr::Pt2PtTIData("Irecv", from, size, encode_datatype(MPI_CURRENT_TYPE)));
MPI_Status status;