From c19d561e3991bcbbed362a5bf2512caf5321cc92 Mon Sep 17 00:00:00 2001 From: Nathan Hjelm Date: Wed, 12 Jul 2017 14:13:12 -0600 Subject: [PATCH] ompi: clean up topo helper functions This commit removes the communicator topo helper functions in favor of functions in mca/topo/base. Signed-off-by: Nathan Hjelm (cherry picked from commit 9b702fb9bd6ccf744af8b8d92aa7c4c5d2f58f2f) Signed-off-by: Nathan Hjelm --- ompi/communicator/Makefile.am | 8 ++- ompi/communicator/comm_helpers.c | 92 -------------------------------- ompi/communicator/comm_helpers.h | 41 -------------- ompi/mpi/c/ineighbor_alltoallv.c | 9 ++-- ompi/mpi/c/ineighbor_alltoallw.c | 9 ++-- ompi/mpi/c/neighbor_alltoallv.c | 9 ++-- ompi/mpi/c/neighbor_alltoallw.c | 9 ++-- 7 files changed, 19 insertions(+), 158 deletions(-) delete mode 100644 ompi/communicator/comm_helpers.c delete mode 100644 ompi/communicator/comm_helpers.h diff --git a/ompi/communicator/Makefile.am b/ompi/communicator/Makefile.am index e7f6dc731ee..6f57a3787f9 100644 --- a/ompi/communicator/Makefile.am +++ b/ompi/communicator/Makefile.am @@ -10,7 +10,7 @@ # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. -# Copyright (c) 2013 Los Alamos National Security, LLC. All rights +# Copyright (c) 2013-2017 Los Alamos National Security, LLC. All rights # reserved. # Copyright (c) 2014 Research Organization for Information Science # and Technology (RIST). All rights reserved. @@ -26,13 +26,11 @@ headers += \ communicator/communicator.h \ - communicator/comm_request.h \ - communicator/comm_helpers.h + communicator/comm_request.h lib@OMPI_LIBMPI_NAME@_la_SOURCES += \ communicator/comm_init.c \ communicator/comm.c \ communicator/comm_cid.c \ - communicator/comm_request.c \ - communicator/comm_helpers.c + communicator/comm_request.c diff --git a/ompi/communicator/comm_helpers.c b/ompi/communicator/comm_helpers.c deleted file mode 100644 index 584e80ee983..00000000000 --- a/ompi/communicator/comm_helpers.c +++ /dev/null @@ -1,92 +0,0 @@ -/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ -/* - * Copyright (c) 2006 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2006 The Technical University of Chemnitz. All - * rights reserved. - * Copyright (c) 2014 Research Organization for Information Science - * and Technology (RIST). All rights reserved. - * Copyright (c) 2015 Los Alamos National Security, LLC. All rights - * reserved. - * - * Author(s): Torsten Hoefler - * - */ - -#include "comm_helpers.h" - -int ompi_comm_neighbors_count(MPI_Comm comm, int *indegree, int *outdegree, int *weighted) { - int res; - - if (OMPI_COMM_IS_CART(comm)) { - int ndims; - res = MPI_Cartdim_get(comm, &ndims) ; - if (MPI_SUCCESS != res) { - return res; - } - /* outdegree is always 2*ndims because we need to iterate over empty buffers for MPI_PROC_NULL */ - *outdegree = *indegree = 2*ndims; - *weighted = 0; - } else if (OMPI_COMM_IS_GRAPH(comm)) { - int rank, nneighbors; - rank = ompi_comm_rank ((ompi_communicator_t *) comm); - res = MPI_Graph_neighbors_count(comm, rank, &nneighbors); - if (MPI_SUCCESS != res) { - return res; - } - *outdegree = *indegree = nneighbors; - *weighted = 0; - } else if (OMPI_COMM_IS_DIST_GRAPH(comm)) { - res = MPI_Dist_graph_neighbors_count(comm, indegree, outdegree, weighted); - } else { - return MPI_ERR_ARG; - } - - return MPI_SUCCESS; -} - -int ompi_comm_neighbors(MPI_Comm comm, int maxindegree, int sources[], int sourceweights[], int maxoutdegree, int destinations[], int destweights[]) { - int res; - int index = 0; - - int indeg, outdeg, wgtd; - res = ompi_comm_neighbors_count(comm, &indeg, &outdeg, &wgtd); - if (MPI_SUCCESS != res) { - return res; - } - if(indeg > maxindegree && outdeg > maxoutdegree) return MPI_ERR_TRUNCATE; /* we want to return *all* neighbors */ - - if (OMPI_COMM_IS_CART(comm)) { - int ndims, i, rpeer, speer; - res = MPI_Cartdim_get(comm, &ndims); - if (MPI_SUCCESS != res) { - return res; - } - - for(i = 0; i - * - * $HEADER$ - */ -#ifndef __TOPO_HELPERS_H__ -#define __TOPO_HELPERS_H__ -#include "ompi_config.h" - -#include "mpi.h" - -#include "ompi/include/ompi/constants.h" -#include "ompi/communicator/communicator.h" - -#include -#include -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -int ompi_comm_neighbors_count(MPI_Comm comm, int *indegree, int *outdegree, int *weighted); -int ompi_comm_neighbors(MPI_Comm comm, int maxindegree, int sources[], int sourceweights[], int maxoutdegree, int destinations[], int destweights[]); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/ompi/mpi/c/ineighbor_alltoallv.c b/ompi/mpi/c/ineighbor_alltoallv.c index 728e9bfebce..3f30bd42a0a 100644 --- a/ompi/mpi/c/ineighbor_alltoallv.c +++ b/ompi/mpi/c/ineighbor_alltoallv.c @@ -11,7 +11,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2012-2013 Los Alamos National Security, LLC. All rights + * Copyright (c) 2012-2017 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2014-2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. @@ -29,7 +29,6 @@ #include "ompi/mpi/c/bindings.h" #include "ompi/runtime/params.h" #include "ompi/communicator/communicator.h" -#include "ompi/communicator/comm_helpers.h" #include "ompi/errhandler/errhandler.h" #include "ompi/datatype/ompi_datatype.h" #include "ompi/memchecker.h" @@ -52,7 +51,7 @@ int MPI_Ineighbor_alltoallv(const void *sendbuf, const int sendcounts[], const i MPI_Request *request) { int i, err; - int indegree, outdegree, weighted; + int indegree, outdegree; MEMCHECKER( ptrdiff_t recv_ext; @@ -68,7 +67,7 @@ int MPI_Ineighbor_alltoallv(const void *sendbuf, const int sendcounts[], const i memchecker_datatype(recvtype); ompi_datatype_type_extent(sendtype, &send_ext); - err = ompi_comm_neighbors_count(comm, &indegree, &outdegree, &weighted); + err = mca_topo_base_neighbor_count (comm, &indegree, &outdegree); if (MPI_SUCCESS == err) { if (MPI_IN_PLACE != sendbuf) { for ( i = 0; i < outdegree; i++ ) { @@ -105,7 +104,7 @@ int MPI_Ineighbor_alltoallv(const void *sendbuf, const int sendcounts[], const i return OMPI_ERRHANDLER_INVOKE(comm, MPI_ERR_ARG, FUNC_NAME); } - err = ompi_comm_neighbors_count(comm, &indegree, &outdegree, &weighted); + err = mca_topo_base_neighbor_count (comm, &indegree, &outdegree); OMPI_ERRHANDLER_CHECK(err, comm, err, FUNC_NAME); for (i = 0; i < outdegree; ++i) { OMPI_CHECK_DATATYPE_FOR_SEND(err, sendtype, sendcounts[i]); diff --git a/ompi/mpi/c/ineighbor_alltoallw.c b/ompi/mpi/c/ineighbor_alltoallw.c index a13115d1627..4601d5bc598 100644 --- a/ompi/mpi/c/ineighbor_alltoallw.c +++ b/ompi/mpi/c/ineighbor_alltoallw.c @@ -11,7 +11,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2012-2013 Los Alamos National Security, LLC. All rights + * Copyright (c) 2012-2017 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2014-2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. @@ -29,7 +29,6 @@ #include "ompi/mpi/c/bindings.h" #include "ompi/runtime/params.h" #include "ompi/communicator/communicator.h" -#include "ompi/communicator/comm_helpers.h" #include "ompi/errhandler/errhandler.h" #include "ompi/datatype/ompi_datatype.h" #include "ompi/memchecker.h" @@ -52,7 +51,7 @@ int MPI_Ineighbor_alltoallw(const void *sendbuf, const int sendcounts[], const M MPI_Request *request) { int i, err; - int indegree, outdegree, weighted; + int indegree, outdegree; MEMCHECKER( ptrdiff_t recv_ext; @@ -60,7 +59,7 @@ int MPI_Ineighbor_alltoallw(const void *sendbuf, const int sendcounts[], const M memchecker_comm(comm); - err = ompi_comm_neighbors_count(comm, &indegree, &outdegree, &weighted); + err = mca_topo_base_neighbor_count (comm, &indegree, &outdegree); if (MPI_SUCCESS == err) { if (MPI_IN_PLACE != sendbuf) { for ( i = 0; i < outdegree; i++ ) { @@ -105,7 +104,7 @@ int MPI_Ineighbor_alltoallw(const void *sendbuf, const int sendcounts[], const M return OMPI_ERRHANDLER_INVOKE(comm, MPI_ERR_ARG, FUNC_NAME); } - err = ompi_comm_neighbors_count(comm, &indegree, &outdegree, &weighted); + err = mca_topo_base_neighbor_count (comm, &indegree, &outdegree); OMPI_ERRHANDLER_CHECK(err, comm, err, FUNC_NAME); for (i = 0; i < outdegree; ++i) { OMPI_CHECK_DATATYPE_FOR_SEND(err, sendtypes[i], sendcounts[i]); diff --git a/ompi/mpi/c/neighbor_alltoallv.c b/ompi/mpi/c/neighbor_alltoallv.c index acadf1ab799..5004e6b42d6 100644 --- a/ompi/mpi/c/neighbor_alltoallv.c +++ b/ompi/mpi/c/neighbor_alltoallv.c @@ -11,7 +11,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2012-2013 Los Alamos National Security, LLC. All rights + * Copyright (c) 2012-2017 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2014-2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. @@ -32,7 +32,6 @@ #include "ompi/errhandler/errhandler.h" #include "ompi/datatype/ompi_datatype.h" #include "ompi/memchecker.h" -#include "ompi/communicator/comm_helpers.h" #include "ompi/mca/topo/topo.h" #include "ompi/mca/topo/base/base.h" @@ -52,7 +51,7 @@ int MPI_Neighbor_alltoallv(const void *sendbuf, const int sendcounts[], const in MPI_Datatype recvtype, MPI_Comm comm) { int i, err; - int indegree, outdegree, weighted; + int indegree, outdegree; MEMCHECKER( ptrdiff_t recv_ext; @@ -68,7 +67,7 @@ int MPI_Neighbor_alltoallv(const void *sendbuf, const int sendcounts[], const in memchecker_datatype(recvtype); ompi_datatype_type_extent(sendtype, &send_ext); - err = ompi_comm_neighbors_count(comm, &indegree, &outdegree, &weighted); + err = mca_topo_base_neighbor_count (comm, &indegree, &outdegree); if (MPI_SUCCESS == err) { if (MPI_IN_PLACE != sendbuf) { for ( i = 0; i < outdegree; i++ ) { @@ -105,7 +104,7 @@ int MPI_Neighbor_alltoallv(const void *sendbuf, const int sendcounts[], const in return OMPI_ERRHANDLER_INVOKE(comm, MPI_ERR_ARG, FUNC_NAME); } - err = ompi_comm_neighbors_count(comm, &indegree, &outdegree, &weighted); + err = mca_topo_base_neighbor_count (comm, &indegree, &outdegree); OMPI_ERRHANDLER_CHECK(err, comm, err, FUNC_NAME); for (i = 0; i < outdegree; ++i) { OMPI_CHECK_DATATYPE_FOR_SEND(err, sendtype, sendcounts[i]); diff --git a/ompi/mpi/c/neighbor_alltoallw.c b/ompi/mpi/c/neighbor_alltoallw.c index 347d0d81432..5d339bfa6d6 100644 --- a/ompi/mpi/c/neighbor_alltoallw.c +++ b/ompi/mpi/c/neighbor_alltoallw.c @@ -11,7 +11,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2012-2013 Los Alamos National Security, LLC. All rights + * Copyright (c) 2012-2017 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2014-2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. @@ -32,7 +32,6 @@ #include "ompi/errhandler/errhandler.h" #include "ompi/datatype/ompi_datatype.h" #include "ompi/memchecker.h" -#include "ompi/communicator/comm_helpers.h" #include "ompi/mca/topo/topo.h" #include "ompi/mca/topo/base/base.h" @@ -52,7 +51,7 @@ int MPI_Neighbor_alltoallw(const void *sendbuf, const int sendcounts[], const MP const MPI_Datatype recvtypes[], MPI_Comm comm) { int i, err; - int indegree, outdegree, weighted; + int indegree, outdegree; MEMCHECKER( ptrdiff_t recv_ext; @@ -60,7 +59,7 @@ int MPI_Neighbor_alltoallw(const void *sendbuf, const int sendcounts[], const MP memchecker_comm(comm); - err = ompi_comm_neighbors_count(comm, &indegree, &outdegree, &weighted); + err = mca_topo_base_neighbor_count (comm, &indegree, &outdegree); if (MPI_SUCCESS == err) { if (MPI_IN_PLACE != sendbuf) { for ( i = 0; i < outdegree; i++ ) { @@ -101,7 +100,7 @@ int MPI_Neighbor_alltoallw(const void *sendbuf, const int sendcounts[], const MP return OMPI_ERRHANDLER_INVOKE(comm, MPI_ERR_ARG, FUNC_NAME); } - err = ompi_comm_neighbors_count(comm, &indegree, &outdegree, &weighted); + err = mca_topo_base_neighbor_count (comm, &indegree, &outdegree); OMPI_ERRHANDLER_CHECK(err, comm, err, FUNC_NAME); for (i = 0; i < outdegree; ++i) { OMPI_CHECK_DATATYPE_FOR_SEND(err, sendtypes[i], sendcounts[i]);