X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d3712fd9c6b068a362fc73454b99ccfbadb0e2c9..18449bfffced07ec0a49297f1eb76c4fe6792895:/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 2593fa3bcc..755c0dbb77 100644 --- a/src/smpi/bindings/smpi_pmpi_coll.cpp +++ b/src/smpi/bindings/smpi_pmpi_coll.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2018. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2007-2019. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -6,9 +6,10 @@ #include "private.hpp" #include "smpi_coll.hpp" #include "smpi_comm.hpp" +#include "smpi_request.hpp" #include "smpi_datatype_derived.hpp" #include "smpi_op.hpp" -#include "smpi_process.hpp" +#include "src/smpi/include/smpi_actor.hpp" XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(smpi_pmpi); @@ -66,6 +67,24 @@ int PMPI_Barrier(MPI_Comm comm) return retval; } +int PMPI_Ibarrier(MPI_Comm comm, MPI_Request *request) +{ + int retval = 0; + smpi_bench_end(); + if (comm == MPI_COMM_NULL) { + retval = MPI_ERR_COMM; + } else if(request == nullptr){ + retval = MPI_ERR_ARG; + }else{ + int rank = simgrid::s4u::this_actor::get_pid(); + TRACE_smpi_comm_in(rank, __func__, new simgrid::instr::NoOpTIData("ibarrier")); + simgrid::smpi::Colls::Ibarrier(comm, request); + TRACE_smpi_comm_out(rank); + } + smpi_bench_begin(); + return retval; +} + int PMPI_Gather(void *sendbuf, int sendcount, MPI_Datatype sendtype,void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm) { @@ -144,7 +163,7 @@ int PMPI_Gatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recv TRACE_smpi_comm_in(rank, __func__, new simgrid::instr::VarCollTIData( - "gatherV", root, + "gatherv", root, sendtmptype->is_replayable() ? sendtmpcount : sendtmpcount * sendtmptype->size(), nullptr, dt_size_recv, trace_recvcounts, simgrid::smpi::Datatype::encode(sendtmptype), simgrid::smpi::Datatype::encode(recvtype))); @@ -182,7 +201,7 @@ int PMPI_Allgather(void *sendbuf, int sendcount, MPI_Datatype sendtype, TRACE_smpi_comm_in(rank, __func__, new simgrid::instr::CollTIData( - "allGather", -1, -1.0, sendtype->is_replayable() ? sendcount : sendcount * sendtype->size(), + "allgather", -1, -1.0, sendtype->is_replayable() ? sendcount : sendcount * sendtype->size(), recvtype->is_replayable() ? recvcount : recvcount * recvtype->size(), simgrid::smpi::Datatype::encode(sendtype), simgrid::smpi::Datatype::encode(recvtype))); @@ -224,7 +243,7 @@ int PMPI_Allgatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype, TRACE_smpi_comm_in(rank, __func__, new simgrid::instr::VarCollTIData( - "allGatherV", -1, sendtype->is_replayable() ? sendcount : sendcount * sendtype->size(), + "allgatherv", -1, sendtype->is_replayable() ? sendcount : sendcount * sendtype->size(), nullptr, dt_size_recv, trace_recvcounts, simgrid::smpi::Datatype::encode(sendtype), simgrid::smpi::Datatype::encode(recvtype))); @@ -307,7 +326,7 @@ int PMPI_Scatterv(void *sendbuf, int *sendcounts, int *displs, TRACE_smpi_comm_in(rank, __func__, new simgrid::instr::VarCollTIData( - "scatterV", root, dt_size_send, trace_sendcounts, + "scatterv", root, dt_size_send, trace_sendcounts, recvtype->is_replayable() ? recvcount : recvcount * recvtype->size(), nullptr, simgrid::smpi::Datatype::encode(sendtype), simgrid::smpi::Datatype::encode(recvtype))); @@ -384,7 +403,7 @@ int PMPI_Allreduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatyp int rank = simgrid::s4u::this_actor::get_pid(); TRACE_smpi_comm_in(rank, __func__, - new simgrid::instr::CollTIData("allReduce", -1, 0, + new simgrid::instr::CollTIData("allreduce", -1, 0, datatype->is_replayable() ? count : count * datatype->size(), -1, simgrid::smpi::Datatype::encode(datatype), "")); @@ -500,7 +519,7 @@ int PMPI_Reduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts, MPI_Datat } TRACE_smpi_comm_in(rank, __func__, new simgrid::instr::VarCollTIData( - "reduceScatter", -1, dt_send_size, nullptr, -1, trace_recvcounts, + "reducescatter", -1, dt_send_size, nullptr, -1, trace_recvcounts, simgrid::smpi::Datatype::encode(datatype), "")); simgrid::smpi::Colls::reduce_scatter(sendtmpbuf, recvbuf, recvcounts, datatype, op, comm); @@ -543,7 +562,7 @@ int PMPI_Reduce_scatter_block(void *sendbuf, void *recvbuf, int recvcount, } TRACE_smpi_comm_in(rank, __func__, - new simgrid::instr::VarCollTIData("reduceScatter", -1, 0, nullptr, -1, trace_recvcounts, + new simgrid::instr::VarCollTIData("reducescatter", -1, 0, nullptr, -1, trace_recvcounts, simgrid::smpi::Datatype::encode(datatype), "")); int* recvcounts = new int[count]; @@ -587,7 +606,7 @@ int PMPI_Alltoall(void* sendbuf, int sendcount, MPI_Datatype sendtype, void* rec TRACE_smpi_comm_in(rank, __func__, new simgrid::instr::CollTIData( - "allToAll", -1, -1.0, + "alltoall", -1, -1.0, sendtmptype->is_replayable() ? sendtmpcount : sendtmpcount * sendtmptype->size(), recvtype->is_replayable() ? recvcount : recvcount * recvtype->size(), simgrid::smpi::Datatype::encode(sendtmptype), simgrid::smpi::Datatype::encode(recvtype))); @@ -657,7 +676,7 @@ int PMPI_Alltoallv(void* sendbuf, int* sendcounts, int* senddisps, MPI_Datatype } TRACE_smpi_comm_in(rank, __func__, - new simgrid::instr::VarCollTIData("allToAllV", -1, send_size, trace_sendcounts, recv_size, + new simgrid::instr::VarCollTIData("alltoallv", -1, send_size, trace_sendcounts, recv_size, trace_recvcounts, simgrid::smpi::Datatype::encode(sendtype), simgrid::smpi::Datatype::encode(recvtype)));