1
1
openmpi/ompi/mca/coll/libnbc/Makefile.am
Nathan Hjelm d42e0968b1 coll/libnbc: rewrite parts of libnbc
This commit rewrites parts of libnbc to fix issues identified by
coverity and myself. The changes are as follows:

 - libnbc function would return invalid error codes (internal to
   libnbc) to the mpi layer. These codes names are of the form
   NBC_. They do not match up with the error codes expected by the mpi
   layer. I purged the use of all these error codes with the exception
   of NBC_OK and NBC_CONTINUE in progress. These codes are used to
   identify when a request handle is complete.

 - Handles and schedules were leaked by all collective routines on
   error. A new routine was added to return a collective handle
   (NBC_Return_handle).

 - Temporary buffers containting in/out neighbors for neighborhood
   collectives were always leaked.

 - Neigborhood collectives contained code to handle MPI_IN_PLACE which
   is never a valid input for the send or receive buffer. Stipped this
   code out.

 - Files were inconsistently named. Most are nbc_isomething.c but one
   was named coll_libnbc_ireduce_scatter_block.c.

 - Made the NBC_Schedule "structure" and object so it can be
   retained/released. This may enable the use of schedule caching at a
   later time. More testing will be needed to ensure the caching code
   works. If it doesn't the code should be stripped out completely.

 - Added code to simply common case of scheduling send/recv +
   barrier.

 - Code cleanup for readability.

The code now passes the clang static analyzer.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-08-10 11:53:25 -06:00

77 строки
2.2 KiB
Makefile

#
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The University of Tennessee and The University
# of Tennessee Research Foundation. All rights
# reserved.
# Copyright (c) 2004-2009 High Performance Computing Center Stuttgart,
# University of Stuttgart. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2013 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
sources = \
coll_libnbc.h \
coll_libnbc_component.c \
nbc.c \
nbc_internal.h \
libdict/dict.h \
libdict/dict_private.h \
libdict/dict.c \
libdict/hb_tree.h \
libdict/hb_tree.c \
nbc_iallgather.c \
nbc_iallgatherv.c \
nbc_iallreduce.c \
nbc_ialltoall.c \
nbc_ialltoallv.c \
nbc_ialltoallw.c \
nbc_ibarrier.c \
nbc_ibcast.c \
nbc_ibcast_inter.c \
nbc_iexscan.c \
nbc_igather.c \
nbc_igatherv.c \
nbc_ineighbor_allgather.c \
nbc_ineighbor_allgatherv.c \
nbc_ineighbor_alltoall.c \
nbc_ineighbor_alltoallv.c \
nbc_ineighbor_alltoallw.c \
nbc_ireduce.c \
nbc_ireduce_scatter.c \
nbc_ireduce_scatter_block.c \
nbc_iscan.c \
nbc_iscatter.c \
nbc_iscatterv.c \
nbc_neighbor_helpers.c
# Make the output library in this directory, and name it either
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
# (for static builds).
if MCA_BUILD_ompi_coll_libnbc_DSO
component_noinst =
component_install = mca_coll_libnbc.la
else
component_noinst = libmca_coll_libnbc.la
component_install =
endif
mcacomponentdir = $(ompilibdir)
mcacomponent_LTLIBRARIES = $(component_install)
mca_coll_libnbc_la_SOURCES = $(sources)
mca_coll_libnbc_la_LDFLAGS = -module -avoid-version
noinst_LTLIBRARIES = $(component_noinst)
libmca_coll_libnbc_la_SOURCES =$(sources)
libmca_coll_libnbc_la_LDFLAGS = -module -avoid-version