X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6302d9298b1dd180f6112a141d12e6ec7cf498d3..74136bc9be5242a580fe6b291076c68569678d7e:/src/smpi/bindings/smpi_pmpi_coll.cpp diff --git a/src/smpi/bindings/smpi_pmpi_coll.cpp b/src/smpi/bindings/smpi_pmpi_coll.cpp index aaf32c3441..f4f8ac1972 100644 --- a/src/smpi/bindings/smpi_pmpi_coll.cpp +++ b/src/smpi/bindings/smpi_pmpi_coll.cpp @@ -26,10 +26,10 @@ int PMPI_Bcast(void *buf, int count, MPI_Datatype datatype, int root, MPI_Comm c } 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); @@ -50,7 +50,7 @@ int PMPI_Barrier(MPI_Comm 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); @@ -90,13 +90,13 @@ int PMPI_Gather(void *sendbuf, int sendcount, MPI_Datatype sendtype,void *recvbu 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); @@ -134,8 +134,8 @@ int PMPI_Gatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recv 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* trace_recvcounts = new std::vector; if (comm->rank() == root) { @@ -145,8 +145,8 @@ 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()->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); @@ -178,12 +178,12 @@ int PMPI_Allgather(void *sendbuf, int sendcount, MPI_Datatype sendtype, 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); @@ -215,8 +215,8 @@ int PMPI_Allgatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype, 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* trace_recvcounts = new std::vector; for (int i = 0; i < comm->size(); i++) // copy data to avoid bad free @@ -224,7 +224,7 @@ int PMPI_Allgatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype, 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); @@ -257,13 +257,13 @@ int PMPI_Scatter(void *sendbuf, int sendcount, MPI_Datatype sendtype, 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); @@ -294,8 +294,8 @@ int PMPI_Scatterv(void *sendbuf, int *sendcounts, int *displs, 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* trace_sendcounts = new std::vector; if (comm->rank() == root) { @@ -304,8 +304,8 @@ int PMPI_Scatterv(void *sendbuf, int *sendcounts, int *displs, } 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); @@ -328,11 +328,11 @@ int PMPI_Reduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, } 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); @@ -378,11 +378,11 @@ int PMPI_Allreduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatyp sendtmpbuf = static_cast(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); @@ -411,10 +411,10 @@ int PMPI_Scan(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MP } 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); @@ -438,7 +438,7 @@ int PMPI_Exscan(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, } 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(xbt_malloc(count * datatype->size())); @@ -446,7 +446,7 @@ int PMPI_Exscan(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, } 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); @@ -474,9 +474,9 @@ int PMPI_Reduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts, MPI_Datat } else if (recvcounts == nullptr) { retval = MPI_ERR_ARG; } else { - int rank = smpi_process()->index(); + int rank = comm->rank(); std::vector* trace_recvcounts = new std::vector; - 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 @@ -523,8 +523,8 @@ int PMPI_Reduce_scatter_block(void *sendbuf, void *recvbuf, int recvcount, } 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* trace_recvcounts = new std::vector(recvcount * dt_send_size); // copy data to avoid bad free void* sendtmpbuf = sendbuf; @@ -565,7 +565,7 @@ int PMPI_Alltoall(void* sendbuf, int sendcount, MPI_Datatype sendtype, void* rec } 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(sendbuf); int sendtmpcount = sendcount; MPI_Datatype sendtmptype = sendtype; @@ -579,8 +579,8 @@ int PMPI_Alltoall(void* sendbuf, int sendcount, MPI_Datatype sendtype, void* rec 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); @@ -610,7 +610,7 @@ int PMPI_Alltoallv(void* sendbuf, int* sendcounts, int* senddisps, MPI_Datatype 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;