
A component with implementation of R. Rabenseifner's algorithm for Reduce and Allreduce. This algorithm is a combination of a reduce-scatter implemented with recursive vector halving and recursive distance doubling, followed either by a gather or an allgather. Current limitations: -- count >= 2^{\floor{\log_2 p}} -- commutative operations only -- intra-communicators onl Signed-off-by: Mikhail Kurnosov <mkurnosov@gmail.com> coll/spacc: Modify implementation to use `ompi_coll_base_sendrecv()` Replace irecv() + isend() + ompi_request_wait() to ompi_coll_base_sendrecv(). Signed-off-by: Mikhail Kurnosov <mkurnosov@gmail.com>
36 строки
853 B
Makefile
36 строки
853 B
Makefile
#
|
|
# $COPYRIGHT$
|
|
#
|
|
# Additional copyrights may follow
|
|
#
|
|
# $HEADER$
|
|
#
|
|
|
|
sources = \
|
|
coll_spacc.h \
|
|
coll_spacc_component.c \
|
|
coll_spacc_module.c \
|
|
coll_spacc_allreduce.c \
|
|
coll_spacc_reduce.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_spacc_DSO
|
|
component_noinst =
|
|
component_install = mca_coll_spacc.la
|
|
else
|
|
component_noinst = libmca_coll_spacc.la
|
|
component_install =
|
|
endif
|
|
|
|
mcacomponentdir = $(ompilibdir)
|
|
mcacomponent_LTLIBRARIES = $(component_install)
|
|
mca_coll_spacc_la_SOURCES = $(sources)
|
|
mca_coll_spacc_la_LDFLAGS = -module -avoid-version
|
|
|
|
noinst_LTLIBRARIES = $(component_noinst)
|
|
libmca_coll_spacc_la_SOURCES =$(sources)
|
|
libmca_coll_spacc_la_LDFLAGS = -module -avoid-version
|