d42e0968b1
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>
77 строки
2.2 KiB
Makefile
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
|