} else {
int rank = smpi_process()->index();
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);
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);
}
int rank = smpi_process()->index();
- int dt_size_recv = recvtype->is_basic() ? 1 : recvtype->size();
+ 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);
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);
sendtype=recvtype;
}
int rank = smpi_process()->index();
- int dt_size_recv = recvtype->is_basic() ? 1 : recvtype->size();
+ 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);
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);
recvcount = sendcounts[comm->rank()];
}
int rank = smpi_process()->index();
- int dt_size_send = sendtype->is_basic() ? 1 : sendtype->size();
+ 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);
int rank = smpi_process()->index();
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);
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);
int rank = smpi_process()->index();
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);
}
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 {
int rank = smpi_process()->index();
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
int count = comm->size();
int rank = smpi_process()->index();
- int dt_send_size = datatype->is_basic() ? 1 : datatype->size();
+ 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;
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);