From 8b9fbe2cd65513016e1a70b47cabfe0f688285fa Mon Sep 17 00:00:00 2001 From: Augustin Degomme Date: Sun, 31 Mar 2019 20:33:25 +0200 Subject: [PATCH 1/1] that helper was completely unnecessary... as mpi_wait was doing exactly the same thing already --- src/smpi/colls/smpi_coll.cpp | 21 ++++----------------- src/smpi/colls/smpi_default_selector.cpp | 8 ++++---- src/smpi/include/smpi_coll.hpp | 1 - 3 files changed, 8 insertions(+), 22 deletions(-) diff --git a/src/smpi/colls/smpi_coll.cpp b/src/smpi/colls/smpi_coll.cpp index e13f8f9e9e..4f16a569a0 100644 --- a/src/smpi/colls/smpi_coll.cpp +++ b/src/smpi/colls/smpi_coll.cpp @@ -115,19 +115,6 @@ void Colls::set_collectives(){ } } -int Colls::finish_nbc_request(MPI_Request request){ - MPI_Request* requests = request->get_nbc_requests(); - int count = request->get_nbc_requests_size(); - Request::waitall(count, requests, MPI_STATUS_IGNORE); - for (int i = 0; i < count; i++) { - if(requests[i]!=MPI_REQUEST_NULL) - Request::unref(&requests[i]); - } - delete[] requests; - Request::unref(&request); - return MPI_SUCCESS; -} - //Implementations of the single algorith collectives int Colls::gatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int *recvcounts, int *displs, @@ -135,7 +122,7 @@ int Colls::gatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *re { MPI_Request request; Colls::igatherv(sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, root, comm, &request); - return Colls::finish_nbc_request(request); + return Request::wait(&request, MPI_STATUS_IGNORE); } @@ -144,7 +131,7 @@ int Colls::scatterv(void *sendbuf, int *sendcounts, int *displs, MPI_Datatype se { MPI_Request request; Colls::iscatterv(sendbuf, sendcounts, displs, sendtype, recvbuf, recvcount, recvtype, root, comm, &request); - return Colls::finish_nbc_request(request); + return Request::wait(&request, MPI_STATUS_IGNORE); } @@ -280,8 +267,8 @@ int Colls::alltoallw(void *sendbuf, int *sendcounts, int *senddisps, MPI_Datatyp void *recvbuf, int *recvcounts, int *recvdisps, MPI_Datatype* recvtypes, MPI_Comm comm) { MPI_Request request; - Colls::ialltoallw(sendbuf, sendcounts, senddisps, sendtypes, recvbuf, recvcounts, recvdisps, recvtypes, comm, &request); - return Colls::finish_nbc_request(request); + Colls::ialltoallw(sendbuf, sendcounts, senddisps, sendtypes, recvbuf, recvcounts, recvdisps, recvtypes, comm, &request); + return Request::wait(&request, MPI_STATUS_IGNORE); } } diff --git a/src/smpi/colls/smpi_default_selector.cpp b/src/smpi/colls/smpi_default_selector.cpp index fa89fe41e2..dca9430c06 100644 --- a/src/smpi/colls/smpi_default_selector.cpp +++ b/src/smpi/colls/smpi_default_selector.cpp @@ -27,7 +27,7 @@ int Coll_gather_default::gather(void *sendbuf, int sendcount, MPI_Datatype sendt { MPI_Request request; Colls::igather(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root, comm, &request); - return Colls::finish_nbc_request(request); + return Request::wait(&request, MPI_STATUS_IGNORE); } int Coll_reduce_scatter_default::reduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts, MPI_Datatype datatype, MPI_Op op, @@ -59,7 +59,7 @@ int Coll_allgather_default::allgather(void *sendbuf, int sendcount, MPI_Datatype { MPI_Request request; Colls::iallgather(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm, &request); - return Colls::finish_nbc_request(request); + return Request::wait(&request, MPI_STATUS_IGNORE); } int Coll_allgatherv_default::allgatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, @@ -83,7 +83,7 @@ int Coll_scatter_default::scatter(void *sendbuf, int sendcount, MPI_Datatype sen { MPI_Request request; Colls::iscatter(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root, comm, &request); - return Colls::finish_nbc_request(request); + return Request::wait(&request, MPI_STATUS_IGNORE); } int Coll_reduce_default::reduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, @@ -174,7 +174,7 @@ int Coll_alltoallv_default::alltoallv(void *sendbuf, int *sendcounts, int *sendd { MPI_Request request; Colls::ialltoallv(sendbuf, sendcounts, senddisps, sendtype, recvbuf, recvcounts, recvdisps, recvtype, comm, &request); - return Colls::finish_nbc_request(request); + return Request::wait(&request, MPI_STATUS_IGNORE); } } diff --git a/src/smpi/include/smpi_coll.hpp b/src/smpi/include/smpi_coll.hpp index 3d4223ac6d..e4c5df3ac5 100644 --- a/src/smpi/include/smpi_coll.hpp +++ b/src/smpi/include/smpi_coll.hpp @@ -120,7 +120,6 @@ public: int* recvdisps, MPI_Datatype* recvtypes, MPI_Comm comm); //async collectives - static int finish_nbc_request(MPI_Request request);//helper static int ibarrier(MPI_Comm comm, MPI_Request* request); static int ibcast(void *buf, int count, MPI_Datatype datatype, int root, MPI_Comm comm, MPI_Request* request); -- 2.20.1