
(1) As pointed out by Torsten after Jeff comment that there are 15 collectives yesterday.. nope.. I have 16 but miss counted them in my ifdefs (I had two #11s). Replaces with enum... (2) Added a readonly MCA param for how many backend algorithms are available per collective (used by benchmarker/STS) This allowed me to remove the tuned query internal functions and replace them with ompi_coll_tuned_forced_max_algorithms[COLL]. (3) I was reading the user forced MCA params for the collectives on each comm create (module init) but I then put the values into a global set of variables (like ompi_coll_tuned_reduce_forced_algorithm). To fix this and make the code neater: (a) The component looks up the MCA param indices on Open if dynamic_rules is set via the ompi_coll_tuned_COLLECTIVE_intra_check_forced_init () call. (b) Got rid of the ompi_coll_ompi_coll_tuned_COLLECTIVE_forced_algorithm/segmentsize/etc globals with a struct that is now cached on the module data hung off the communicator. i.e. done right. (c) On module init if dynamic rules enabled we call a general getvalues routine (in coll_tuned_forced.c) to get the CURRENT values using the MCA param indices and then put them on the modules data segment. A shorter version of getvalues exists for barrier which only needs the algorithm choice This commit was SVN r9663.
65 строки
2.1 KiB
Makefile
65 строки
2.1 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-2005 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$
|
|
#
|
|
# Additional copyrights may follow
|
|
#
|
|
# $HEADER$
|
|
#
|
|
|
|
sources = \
|
|
coll_tuned.h \
|
|
coll_tuned_topo.h \
|
|
coll_tuned_util.h \
|
|
coll_tuned_dynamic_file.h \
|
|
coll_tuned_dynamic_rules.h \
|
|
coll_tuned_forced.h \
|
|
coll_tuned_topo.c \
|
|
coll_tuned_util.c \
|
|
coll_tuned_decision_fixed.c \
|
|
coll_tuned_decision_dynamic.c \
|
|
coll_tuned_dynamic_file.c \
|
|
coll_tuned_dynamic_rules.c \
|
|
coll_tuned_forced.c \
|
|
coll_tuned_allreduce.c \
|
|
coll_tuned_alltoall.c \
|
|
coll_tuned_barrier.c \
|
|
coll_tuned_bcast.c \
|
|
coll_tuned_reduce.c \
|
|
coll_tuned_component.c \
|
|
coll_tuned_module.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 OMPI_BUILD_coll_tuned_DSO
|
|
component_noinst =
|
|
component_install = mca_coll_tuned.la
|
|
else
|
|
component_noinst = libmca_coll_tuned.la
|
|
component_install =
|
|
endif
|
|
|
|
mcacomponentdir = $(libdir)/openmpi
|
|
mcacomponent_LTLIBRARIES = $(component_install)
|
|
mca_coll_tuned_la_SOURCES = $(sources)
|
|
mca_coll_tuned_la_LDFLAGS = -module -avoid-version
|
|
mca_coll_tuned_la_LIBADD = \
|
|
$(top_ompi_builddir)/ompi/libmpi.la \
|
|
$(top_ompi_builddir)/orte/liborte.la \
|
|
$(top_ompi_builddir)/opal/libopal.la
|
|
|
|
noinst_LTLIBRARIES = $(component_noinst)
|
|
libmca_coll_tuned_la_SOURCES =$(sources)
|
|
libmca_coll_tuned_la_LDFLAGS = -module -avoid-version
|