} else if (not datatype->is_valid()) {
retval = MPI_ERR_ARG;
} else {
- int rank = smpi_process()->index();
+ int rank = comm->rank();
TRACE_smpi_comm_in(rank, __FUNCTION__,
- new simgrid::instr::CollTIData("bcast", comm->group()->index(root), -1.0,
- datatype->is_basic() ? count : count * datatype->size(), -1,
+ new simgrid::instr::CollTIData("bcast", comm->group()->actor(root)->getPid()-1, -1.0,
+ datatype->is_replayable() ? count : count * datatype->size(), -1,
encode_datatype(datatype), ""));
if (comm->size() > 1)
simgrid::smpi::Colls::bcast(buf, count, datatype, root, comm);
if (comm == MPI_COMM_NULL) {
retval = MPI_ERR_COMM;
} else {
- int rank = smpi_process()->index();
+ int rank = comm->rank();
TRACE_smpi_comm_in(rank, __FUNCTION__, new simgrid::instr::NoOpTIData("barrier"));
simgrid::smpi::Colls::barrier(comm);
sendtmpcount=0;
sendtmptype=recvtype;
}
- int rank = smpi_process()->index();
+ int rank = comm->rank();
TRACE_smpi_comm_in(rank, __FUNCTION__,
new simgrid::instr::CollTIData(
- "gather", comm->group()->index(root), -1.0,
- sendtmptype->is_basic() ? sendtmpcount : sendtmpcount * sendtmptype->size(),
- (comm->rank() != root || recvtype->is_basic()) ? recvcount : recvcount * recvtype->size(),
+ "gather", comm->group()->actor(root)->getPid()-1, -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)));
simgrid::smpi::Colls::gather(sendtmpbuf, sendtmpcount, sendtmptype, recvbuf, recvcount, recvtype, root, comm);
sendtmptype=recvtype;
}
- int rank = smpi_process()->index();
- int dt_size_recv = recvtype->is_basic() ? 1 : recvtype->size();
+ int rank = comm->rank();
+ int dt_size_recv = recvtype->is_replayable() ? 1 : recvtype->size();
std::vector<int>* trace_recvcounts = new std::vector<int>;
if (comm->rank() == root) {
TRACE_smpi_comm_in(rank, __FUNCTION__,
new simgrid::instr::VarCollTIData(
- "gatherV", comm->group()->index(root),
- sendtmptype->is_basic() ? sendtmpcount : sendtmpcount * sendtmptype->size(), nullptr,
+ "gatherV", comm->group()->actor(root)->getPid()-1,
+ sendtmptype->is_replayable() ? sendtmpcount : sendtmpcount * sendtmptype->size(), nullptr,
dt_size_recv, trace_recvcounts, encode_datatype(sendtmptype), encode_datatype(recvtype)));
retval = simgrid::smpi::Colls::gatherv(sendtmpbuf, sendtmpcount, sendtmptype, recvbuf, recvcounts, displs, recvtype, root, comm);
sendcount=recvcount;
sendtype=recvtype;
}
- int rank = smpi_process()->index();
+ int rank = comm->rank();
TRACE_smpi_comm_in(rank, __FUNCTION__,
new simgrid::instr::CollTIData("allGather", -1, -1.0,
- sendtype->is_basic() ? sendcount : sendcount * sendtype->size(),
- recvtype->is_basic() ? recvcount : recvcount * recvtype->size(),
+ sendtype->is_replayable() ? sendcount : sendcount * sendtype->size(),
+ recvtype->is_replayable() ? recvcount : recvcount * recvtype->size(),
encode_datatype(sendtype), encode_datatype(recvtype)));
simgrid::smpi::Colls::allgather(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm);
sendcount=recvcounts[comm->rank()];
sendtype=recvtype;
}
- int rank = smpi_process()->index();
- int dt_size_recv = recvtype->is_basic() ? 1 : recvtype->size();
+ int rank = comm->rank();
+ int dt_size_recv = recvtype->is_replayable() ? 1 : recvtype->size();
std::vector<int>* trace_recvcounts = new std::vector<int>;
for (int i = 0; i < comm->size(); i++) // copy data to avoid bad free
TRACE_smpi_comm_in(rank, __FUNCTION__,
new simgrid::instr::VarCollTIData(
- "allGatherV", -1, sendtype->is_basic() ? sendcount : sendcount * sendtype->size(), nullptr,
+ "allGatherV", -1, sendtype->is_replayable() ? sendcount : sendcount * sendtype->size(), nullptr,
dt_size_recv, trace_recvcounts, encode_datatype(sendtype), encode_datatype(recvtype)));
simgrid::smpi::Colls::allgatherv(sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, comm);
recvtype = sendtype;
recvcount = sendcount;
}
- int rank = smpi_process()->index();
+ int rank = comm->rank();
TRACE_smpi_comm_in(rank, __FUNCTION__,
new simgrid::instr::CollTIData(
- "scatter", comm->group()->index(root), -1.0,
- (comm->rank() != root || sendtype->is_basic()) ? sendcount : sendcount * sendtype->size(),
- recvtype->is_basic() ? recvcount : recvcount * recvtype->size(), encode_datatype(sendtype),
+ "scatter", comm->group()->actor(root)->getPid()-1, -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)));
simgrid::smpi::Colls::scatter(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root, comm);
recvtype = sendtype;
recvcount = sendcounts[comm->rank()];
}
- int rank = smpi_process()->index();
- int dt_size_send = sendtype->is_basic() ? 1 : sendtype->size();
+ int rank = comm->rank();
+ int dt_size_send = sendtype->is_replayable() ? 1 : sendtype->size();
std::vector<int>* trace_sendcounts = new std::vector<int>;
if (comm->rank() == root) {
}
TRACE_smpi_comm_in(rank, __FUNCTION__, new simgrid::instr::VarCollTIData(
- "scatterV", comm->group()->index(root), dt_size_send, trace_sendcounts,
- recvtype->is_basic() ? recvcount : recvcount * recvtype->size(), nullptr,
+ "scatterV", comm->group()->actor(root)->getPid()-1, dt_size_send, trace_sendcounts,
+ recvtype->is_replayable() ? recvcount : recvcount * recvtype->size(), nullptr,
encode_datatype(sendtype), encode_datatype(recvtype)));
retval = simgrid::smpi::Colls::scatterv(sendbuf, sendcounts, displs, sendtype, recvbuf, recvcount, recvtype, root, comm);
} else if (not datatype->is_valid() || op == MPI_OP_NULL) {
retval = MPI_ERR_ARG;
} else {
- int rank = smpi_process()->index();
+ int rank = comm->rank();
TRACE_smpi_comm_in(rank, __FUNCTION__,
- new simgrid::instr::CollTIData("reduce", comm->group()->index(root), 0,
- datatype->is_basic() ? count : count * datatype->size(), -1,
+ new simgrid::instr::CollTIData("reduce", comm->group()->actor(root)->getPid()-1, 0,
+ datatype->is_replayable() ? count : count * datatype->size(), -1,
encode_datatype(datatype), ""));
simgrid::smpi::Colls::reduce(sendbuf, recvbuf, count, datatype, op, root, comm);
sendtmpbuf = static_cast<char*>(xbt_malloc(count*datatype->get_extent()));
simgrid::smpi::Datatype::copy(recvbuf, count, datatype,sendtmpbuf, count, datatype);
}
- int rank = smpi_process()->index();
+ int rank = comm->rank();
TRACE_smpi_comm_in(rank, __FUNCTION__,
new simgrid::instr::CollTIData("allReduce", -1, 0,
- datatype->is_basic() ? count : count * datatype->size(), -1,
+ datatype->is_replayable() ? count : count * datatype->size(), -1,
encode_datatype(datatype), ""));
simgrid::smpi::Colls::allreduce(sendtmpbuf, recvbuf, count, datatype, op, comm);
} else if (op == MPI_OP_NULL) {
retval = MPI_ERR_OP;
} else {
- int rank = smpi_process()->index();
+ int rank = comm->rank();
TRACE_smpi_comm_in(rank, __FUNCTION__, new simgrid::instr::Pt2PtTIData(
- "scan", -1, datatype->is_basic() ? count : count * datatype->size(),
+ "scan", -1, datatype->is_replayable() ? count : count * datatype->size(),
encode_datatype(datatype)));
retval = simgrid::smpi::Colls::scan(sendbuf, recvbuf, count, datatype, op, comm);
} else if (op == MPI_OP_NULL) {
retval = MPI_ERR_OP;
} else {
- int rank = smpi_process()->index();
+ int rank = comm->rank();
void* sendtmpbuf = sendbuf;
if (sendbuf == MPI_IN_PLACE) {
sendtmpbuf = static_cast<void*>(xbt_malloc(count * datatype->size()));
}
TRACE_smpi_comm_in(rank, __FUNCTION__, new simgrid::instr::Pt2PtTIData(
- "exscan", -1, datatype->is_basic() ? count : count * datatype->size(),
+ "exscan", -1, datatype->is_replayable() ? count : count * datatype->size(),
encode_datatype(datatype)));
retval = simgrid::smpi::Colls::exscan(sendtmpbuf, recvbuf, count, datatype, op, comm);
} else if (recvcounts == nullptr) {
retval = MPI_ERR_ARG;
} else {
- int rank = smpi_process()->index();
+ int rank = comm->rank();
std::vector<int>* trace_recvcounts = new std::vector<int>;
- int dt_send_size = datatype->is_basic() ? 1 : datatype->size();
+ int dt_send_size = datatype->is_replayable() ? 1 : datatype->size();
int totalcount = 0;
for (int i = 0; i < comm->size(); i++) { // copy data to avoid bad free
} else {
int count = comm->size();
- int rank = smpi_process()->index();
- int dt_send_size = datatype->is_basic() ? 1 : datatype->size();
+ int rank = comm->rank();
+ int dt_send_size = datatype->is_replayable() ? 1 : datatype->size();
std::vector<int>* trace_recvcounts = new std::vector<int>(recvcount * dt_send_size); // copy data to avoid bad free
void* sendtmpbuf = sendbuf;
} else if ((sendbuf != MPI_IN_PLACE && sendtype == MPI_DATATYPE_NULL) || recvtype == MPI_DATATYPE_NULL) {
retval = MPI_ERR_TYPE;
} else {
- int rank = smpi_process()->index();
+ int rank = comm->rank();
void* sendtmpbuf = static_cast<char*>(sendbuf);
int sendtmpcount = sendcount;
MPI_Datatype sendtmptype = sendtype;
TRACE_smpi_comm_in(
rank, __FUNCTION__,
new simgrid::instr::CollTIData("allToAll", -1, -1.0,
- sendtmptype->is_basic() ? sendtmpcount : sendtmpcount * sendtmptype->size(),
- recvtype->is_basic() ? recvcount : recvcount * recvtype->size(),
+ sendtmptype->is_replayable() ? sendtmpcount : sendtmpcount * sendtmptype->size(),
+ recvtype->is_replayable() ? recvcount : recvcount * recvtype->size(),
encode_datatype(sendtmptype), encode_datatype(recvtype)));
retval = simgrid::smpi::Colls::alltoall(sendtmpbuf, sendtmpcount, sendtmptype, recvbuf, recvcount, recvtype, comm);
recvdisps == nullptr) {
retval = MPI_ERR_ARG;
} else {
- int rank = smpi_process()->index();
+ int rank = comm->rank();
int size = comm->size();
int send_size = 0;
int recv_size = 0;