From: Paul Bédaride Date: Thu, 11 Apr 2013 14:41:35 +0000 (+0200) Subject: Remove mpi alltoall{,w}_pairwise (identical to ring) X-Git-Tag: v3_9_90~412^2~7 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/386b9bb016d5acdc4929226fa4347a8f6d79bd21 Remove mpi alltoall{,w}_pairwise (identical to ring) --- diff --git a/buildtools/Cmake/AddTests.cmake b/buildtools/Cmake/AddTests.cmake index f72dd48fba..b48cb41d33 100644 --- a/buildtools/Cmake/AddTests.cmake +++ b/buildtools/Cmake/AddTests.cmake @@ -381,12 +381,12 @@ if(NOT enable_memcheck) FOREACH (ALLTOALL_COLL 2dmesh 3dmesh pair pair_one_barrier pair_light_barrier pair_mpi_barrier rdb ring ring_light_barrier ring_mpi_barrier ring_one_barrier - simple bruck basic_linear pairwise) + simple bruck basic_linear) ADD_TEST(smpi-alltoall-coll-${ALLTOALL_COLL} ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cfg smpi/alltoall:${ALLTOALL_COLL} --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/alltoall_coll.tesh) ENDFOREACH() FOREACH (ALLTOALLV_COLL default pair pair_light_barrier pair_mpi_barrier pair_one_barrier ring ring_light_barrier - ring_mpi_barrier ring_one_barrier bruck pairwise) + ring_mpi_barrier ring_one_barrier bruck) ADD_TEST(smpi-alltoallv-coll-${ALLTOALLV_COLL} ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cfg smpi/alltoallv:${ALLTOALLV_COLL} --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/alltoallv_coll.tesh) ENDFOREACH() FOREACH (BCAST_COLL default arrival_nb arrival_pattern_aware arrival_pattern_aware_wait arrival_scatter diff --git a/buildtools/Cmake/DefinePackages.cmake b/buildtools/Cmake/DefinePackages.cmake index ff771aa88c..e06d8a37fe 100644 --- a/buildtools/Cmake/DefinePackages.cmake +++ b/buildtools/Cmake/DefinePackages.cmake @@ -162,7 +162,6 @@ set(SMPI_SRC src/smpi/colls/alltoallv-ring-light-barrier.c src/smpi/colls/alltoallv-ring-mpi-barrier.c src/smpi/colls/alltoallv-ring-one-barrier.c - src/smpi/colls/alltoallv-pairwise.c src/smpi/colls/alltoallv-bruck.c src/smpi/colls/bcast-arrival-nb.c src/smpi/colls/bcast-arrival-pattern-aware.c diff --git a/src/smpi/colls/colls.h b/src/smpi/colls/colls.h index 8349bc5550..97f51d1c54 100644 --- a/src/smpi/colls/colls.h +++ b/src/smpi/colls/colls.h @@ -118,8 +118,7 @@ COLL_APPLY(action, COLL_ALLTOALLV_SIG, pair_one_barrier) COLL_sep \ COLL_APPLY(action, COLL_ALLTOALLV_SIG, ring) COLL_sep \ COLL_APPLY(action, COLL_ALLTOALLV_SIG, ring_light_barrier) COLL_sep \ COLL_APPLY(action, COLL_ALLTOALLV_SIG, ring_mpi_barrier) COLL_sep \ -COLL_APPLY(action, COLL_ALLTOALLV_SIG, ring_one_barrier) COLL_sep \ -COLL_APPLY(action, COLL_ALLTOALLV_SIG, pairwise) +COLL_APPLY(action, COLL_ALLTOALLV_SIG, ring_one_barrier) COLL_ALLTOALLVS(COLL_PROTO, COLL_NOsep) diff --git a/src/smpi/private.h b/src/smpi/private.h index 3c4e936aca..f67ad5e1f9 100644 --- a/src/smpi/private.h +++ b/src/smpi/private.h @@ -252,10 +252,6 @@ int smpi_coll_tuned_alltoall_basic_linear(void *sendbuf, int sendcount, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm); -int smpi_coll_tuned_alltoall_pairwise(void *sendbuf, int sendcount, - MPI_Datatype sendtype, void *recvbuf, - int recvcount, MPI_Datatype recvtype, - MPI_Comm comm); int smpi_coll_basic_alltoallv(void *sendbuf, int *sendcounts, int *senddisps, MPI_Datatype sendtype, void *recvbuf, int *recvcounts, diff --git a/src/smpi/smpi_coll.c b/src/smpi/smpi_coll.c index 7c4c30e6ff..08eaf9c1b5 100644 --- a/src/smpi/smpi_coll.c +++ b/src/smpi/smpi_coll.c @@ -40,9 +40,6 @@ COLL_ALLTOALLS(COLL_DESCRIPTION, COLL_COMMA), {"basic_linear", "Alltoall basic linear (SG) collective", smpi_coll_tuned_alltoall_basic_linear}, - {"pairwise", - "Alltoall pairwise (SG) collective", - smpi_coll_tuned_alltoall_pairwise}, {NULL, NULL, NULL} /* this array must be NULL terminated */ }; @@ -313,9 +310,9 @@ int smpi_coll_tuned_alltoall_ompi(void *sendbuf, int sendcount, recvcount, recvtype, comm); } else { return - smpi_coll_tuned_alltoall_pairwise(sendbuf, sendcount, sendtype, - recvbuf, recvcount, recvtype, - comm); + smpi_coll_tuned_alltoall_ring(sendbuf, sendcount, sendtype, + recvbuf, recvcount, recvtype, + comm); } } @@ -443,44 +440,6 @@ int smpi_coll_tuned_alltoall_basic_linear(void *sendbuf, int sendcount, return err; } -/** - * Alltoall pairwise - * - * this algorithm performs size steps (1<=s<=size) and - * at each step s, a process p sends iand receive to.from a unique distinct remote process - * size=5 : s=1: 4->0->1, 0->1->2, 1->2->3, ... - * s=2: 3->0->2, 4->1->3, 0->2->4, 1->3->0 , 2->4->1 - * .... - * Openmpi calls this routine when the message size sent to each rank is greater than 3000 bytes - **/ -int smpi_coll_tuned_alltoall_pairwise(void *sendbuf, int sendcount, - MPI_Datatype sendtype, void *recvbuf, - int recvcount, MPI_Datatype recvtype, - MPI_Comm comm) -{ - int system_tag = 999; - int rank, size, step, sendto, recvfrom, sendsize, recvsize; - - rank = smpi_comm_rank(comm); - size = smpi_comm_size(comm); - XBT_DEBUG("<%d> algorithm alltoall_pairwise() called.", rank); - sendsize = smpi_datatype_size(sendtype); - recvsize = smpi_datatype_size(recvtype); - /* Perform pairwise exchange - starting from 1 so the local copy is last */ - for (step = 1; step < size + 1; step++) { - /* who do we talk to in this step? */ - sendto = (rank + step) % size; - recvfrom = (rank + size - step) % size; - /* send and receive */ - smpi_mpi_sendrecv(&((char *) sendbuf)[sendto * sendsize * sendcount], - sendcount, sendtype, sendto, system_tag, - &((char *) recvbuf)[recvfrom * recvsize * recvcount], - recvcount, recvtype, recvfrom, system_tag, comm, - MPI_STATUS_IGNORE); - } - return MPI_SUCCESS; -} - int smpi_coll_basic_alltoallv(void *sendbuf, int *sendcounts, int *senddisps, MPI_Datatype sendtype, void *recvbuf, int *recvcounts,